diff --git a/include/JSystem/J2DGraph/J2DPrint.h b/include/JSystem/J2DGraph/J2DPrint.h index dfc68a463b6..fe2b1698238 100644 --- a/include/JSystem/J2DGraph/J2DPrint.h +++ b/include/JSystem/J2DGraph/J2DPrint.h @@ -3,7 +3,7 @@ #include "JSystem/J2DGraph/J2DTextBox.h" #include "JSystem/JUtility/TColor.h" -#include "MSL_C/MSL_Common/Src/printf.h" +#include "Runtime.PPCEABI.H/__va_arg.h" #include "dolphin/types.h" class J2DPrint { diff --git a/include/MSL_C/MSL_Common/Src/ansi_files.h b/include/MSL_C/MSL_Common/Src/ansi_files.h index 56573407cc1..a5d74cf21f0 100644 --- a/include/MSL_C/MSL_Common/Src/ansi_files.h +++ b/include/MSL_C/MSL_Common/Src/ansi_files.h @@ -104,9 +104,9 @@ typedef struct _FILE { } FILE; typedef struct _files { - FILE stdin; - FILE stdout; - FILE stderr; + FILE _stdin; + FILE _stdout; + FILE _stderr; FILE empty; } files; diff --git a/include/MSL_C/stdio.h b/include/MSL_C/stdio.h new file mode 100644 index 00000000000..135bd9314ee --- /dev/null +++ b/include/MSL_C/stdio.h @@ -0,0 +1,14 @@ +#ifndef MSL_STDIO_H_ +#define MSL_STDIO_H_ + +#include "MSL_C/MSL_Common/Src/FILE_POS.h" +#include "MSL_C/MSL_Common/Src/char_io.h" +#include "MSL_C/MSL_Common/Src/direct_io.h" +#include "MSL_C/MSL_Common/Src/file_io.h" +#include "MSL_C/MSL_Common/Src/printf.h" + +#define stdin (&__files._stdin) +#define stdout (&__files._stdout) +#define stderr (&__files._stderr) + +#endif diff --git a/include/MSL_C/string.h b/include/MSL_C/string.h index c1105257c8c..21cb9c72749 100644 --- a/include/MSL_C/string.h +++ b/include/MSL_C/string.h @@ -1,27 +1,23 @@ #ifndef MSL_STRING_H_ #define MSL_STRING_H_ -#include "Runtime.PPCEABI.H/__va_arg.h" +#include "MSL_C/MSL_Common/Src/stddef.h" // TODO: move to MSL_C/ extern "C" { -void memcpy(void*, const void*, s32); -void* memset(void* dest, int ch, u32 count); +void memcpy(void*, const void*, size_t); +void* memset(void* dest, int ch, size_t count); char* strrchr(const char* s, int c); char* strchr(const char* s, int c); -int strncmp(const char* s1, const char* s2, u32 n); +int strncmp(const char* s1, const char* s2, size_t n); int strcmp(const char* s1, const char* s2); int stricmp(const char*, const char*); char* strcat(char* dest, const char* source); -char* strncpy(char* dest, const char* source, u32 n); +char* strncpy(char* dest, const char* source, size_t n); char* strcpy(char* dest, const char* source); -u32 strlen(const char* s); +size_t strlen(const char* s); int tolower(int); -int sprintf(char*, const char*, ...); -int printf(const char*, ...); -int snprintf(char*, u32, const char*, ...); -size_t vsnprintf(char* buffer, size_t buffer_size, const char* format, va_list args); } #endif \ No newline at end of file diff --git a/include/d/save/d_save.h b/include/d/save/d_save.h index 334cdcc389a..46d8d8dc287 100644 --- a/include/d/save/d_save.h +++ b/include/d/save/d_save.h @@ -1,7 +1,6 @@ #ifndef D_SAVE_D_SAVE_H #define D_SAVE_D_SAVE_H -#include "MSL_C/MSL_Common/Src/printf.h" #include "MSL_C/MSL_Common/Src/string.h" #include "SSystem/SComponent/c_xyz.h" #include "dolphin/os/OS.h" diff --git a/include/m_Do/m_Do_printf.h b/include/m_Do/m_Do_printf.h index ac80fa30503..9a89912e971 100644 --- a/include/m_Do/m_Do_printf.h +++ b/include/m_Do/m_Do_printf.h @@ -1,8 +1,6 @@ #ifndef M_DO_M_DO_PRINTF_H #define M_DO_M_DO_PRINTF_H -#include "MSL_C/MSL_Common/Src/char_io.h" -#include "MSL_C/MSL_Common/Src/printf.h" #include "Runtime.PPCEABI.H/__va_arg.h" #include "dolphin/types.h" #include "m_Do/m_Do_main.h" diff --git a/libs/JSystem/J2DGraph/J2DPrint.cpp b/libs/JSystem/J2DGraph/J2DPrint.cpp index b523d89d887..6dcde380363 100644 --- a/libs/JSystem/J2DGraph/J2DPrint.cpp +++ b/libs/JSystem/J2DGraph/J2DPrint.cpp @@ -4,6 +4,7 @@ // #include "JSystem/J2DGraph/J2DPrint.h" +#include "MSL_C/stdio.h" #include "dol2asm.h" #include "dolphin/types.h" diff --git a/libs/JSystem/JKernel/JKRThread.cpp b/libs/JSystem/JKernel/JKRThread.cpp index 7235ed8799b..f801dd206fb 100644 --- a/libs/JSystem/JKernel/JKRThread.cpp +++ b/libs/JSystem/JKernel/JKRThread.cpp @@ -7,7 +7,7 @@ #include "JSystem/JKernel/JKRExpHeap.h" #include "JSystem/JUtility/JUTAssert.h" #include "JSystem/JUtility/JUTConsole.h" -#include "MSL_C/MSL_Common/Src/printf.h" +#include "MSL_C/stdio.h" #include "dol2asm.h" /* 8043428C-80434298 060FAC 000C+00 5/6 0/0 0/0 .bss sThreadList__9JKRThread */ diff --git a/libs/JSystem/JUtility/JUTConsole.cpp b/libs/JSystem/JUtility/JUTConsole.cpp index f104b08f59d..dea05eb4dc4 100644 --- a/libs/JSystem/JUtility/JUTConsole.cpp +++ b/libs/JSystem/JUtility/JUTConsole.cpp @@ -8,7 +8,7 @@ #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JUtility/JUTDirectPrint.h" #include "JSystem/JUtility/JUTVideo.h" -#include "MSL_C/MSL_Common/Src/printf.h" +#include "MSL_C/stdio.h" #include "dol2asm.h" // diff --git a/libs/JSystem/JUtility/JUTDbPrint.cpp b/libs/JSystem/JUtility/JUTDbPrint.cpp index facc851fd44..fc03e639a37 100644 --- a/libs/JSystem/JUtility/JUTDbPrint.cpp +++ b/libs/JSystem/JUtility/JUTDbPrint.cpp @@ -6,8 +6,7 @@ #include "JSystem/JUtility/JUTDbPrint.h" #include "JSystem/J2DGraph/J2DOrthoGraph.h" #include "JSystem/JUtility/JUTVideo.h" -#include "MSL_C/MSL_Common/Src/printf.h" -#include "MSL_C/MSL_Common/Src/string.h" +#include "MSL_C/stdio.h" /* 802E0148-802E0190 2DAA88 0048+00 1/1 0/0 0/0 .text __ct__10JUTDbPrintFP7JUTFontP7JKRHeap */ JUTDbPrint::JUTDbPrint(JUTFont* pFont, JKRHeap* pHeap) { diff --git a/libs/JSystem/JUtility/JUTDirectPrint.cpp b/libs/JSystem/JUtility/JUTDirectPrint.cpp index ba56b7f3bea..717e936eaff 100644 --- a/libs/JSystem/JUtility/JUTDirectPrint.cpp +++ b/libs/JSystem/JUtility/JUTDirectPrint.cpp @@ -4,7 +4,7 @@ // #include "JSystem/JUtility/JUTDirectPrint.h" -#include "MSL_C/MSL_Common/Src/printf.h" +#include "MSL_C/stdio.h" #include "Runtime.PPCEABI.H/__va_arg.h" #include "dol2asm.h" #include "dolphin/os/OSCache.h" diff --git a/libs/JSystem/JUtility/JUTException.cpp b/libs/JSystem/JUtility/JUTException.cpp index bb6b89b20b4..c949afb07d7 100644 --- a/libs/JSystem/JUtility/JUTException.cpp +++ b/libs/JSystem/JUtility/JUTException.cpp @@ -8,7 +8,7 @@ #include "JSystem/JUtility/JUTDirectFile.h" #include "JSystem/JUtility/JUTDirectPrint.h" #include "MSL_C/MSL_Common/Src/float.h" -#include "MSL_C/MSL_Common/Src/printf.h" +#include "MSL_C/stdio.h" #include "Runtime.PPCEABI.H/__va_arg.h" #include "dol2asm.h" diff --git a/libs/MSL_C/MSL_Common/Src/ansi_files.c b/libs/MSL_C/MSL_Common/Src/ansi_files.c index 931435b2de7..9e3506a4fcb 100644 --- a/libs/MSL_C/MSL_Common/Src/ansi_files.c +++ b/libs/MSL_C/MSL_Common/Src/ansi_files.c @@ -47,7 +47,7 @@ extern files __files = { __write_console, __close_console, NULL, - &__files.stdout, + &__files._stdout, }, { 1, @@ -79,7 +79,7 @@ extern files __files = { __write_console, __close_console, NULL, - &__files.stderr, + &__files._stderr, }, { 2, @@ -121,7 +121,7 @@ extern files __files = { /* 8036307C-80363124 35D9BC 00A8+00 0/0 1/1 0/0 .text __close_all */ void __close_all(void) { - FILE* file = &__files.stdin; + FILE* file = &__files._stdin; FILE* last_file; __begin_critical_region(2); @@ -150,7 +150,7 @@ void __close_all(void) { /* 8036300C-8036307C 35D94C 0070+00 0/0 2/2 0/0 .text __flush_all */ unsigned int __flush_all(void) { unsigned int ret = 0; - FILE* file = &__files.stdin; + FILE* file = &__files._stdin; while (file) { if (file->file_mode.file_kind != 0 && fflush(file)) { diff --git a/rel/d/a/d_a_set_bgobj/d_a_set_bgobj.cpp b/rel/d/a/d_a_set_bgobj/d_a_set_bgobj.cpp index 5d315e13d45..3006ed98826 100644 --- a/rel/d/a/d_a_set_bgobj/d_a_set_bgobj.cpp +++ b/rel/d/a/d_a_set_bgobj/d_a_set_bgobj.cpp @@ -4,6 +4,7 @@ */ #include "rel/d/a/d_a_set_bgobj/d_a_set_bgobj.h" +#include "MSL_C/stdio.h" #include "d/d_procname.h" /* 80485F00-80485F0C 000000 0009+03 1/1 0/0 0/0 .rodata l_specName */ diff --git a/src/DynamicLink.cpp b/src/DynamicLink.cpp index 49ee373ac3e..0ce1ce732ba 100644 --- a/src/DynamicLink.cpp +++ b/src/DynamicLink.cpp @@ -6,7 +6,7 @@ #include "DynamicLink.h" #include "JSystem/JKernel/JKRDvdRipper.h" #include "JSystem/JUtility/JUTConsole.h" -#include "MSL_C/MSL_Common/Src/printf.h" +#include "MSL_C/stdio.h" #include "dol2asm.h" #include "dolphin/os/OS.h" #include "dolphin/types.h" diff --git a/src/d/com/d_com_inf_game.cpp b/src/d/com/d_com_inf_game.cpp index dfe644d4817..aaf065545a5 100644 --- a/src/d/com/d_com_inf_game.cpp +++ b/src/d/com/d_com_inf_game.cpp @@ -4,6 +4,7 @@ // #include "d/com/d_com_inf_game.h" +#include "MSL_C/stdio.h" #include "d/d_item.h" #include "d/d_procname.h" #include "d/d_timer.h" diff --git a/src/d/com/d_com_static.cpp b/src/d/com/d_com_static.cpp index a97555c0598..afa3571b5b2 100644 --- a/src/d/com/d_com_static.cpp +++ b/src/d/com/d_com_static.cpp @@ -4,6 +4,7 @@ // #include "d/com/d_com_static.h" +#include "MSL_C/stdio.h" #include "d/com/d_com_inf_game.h" #include "d/d_demo.h" #include "dol2asm.h" diff --git a/src/d/d_name.cpp b/src/d/d_name.cpp index 7ed8aed09a2..69b1acbee4a 100644 --- a/src/d/d_name.cpp +++ b/src/d/d_name.cpp @@ -5,6 +5,7 @@ #include "d/d_name.h" #include "JSystem/J2DGraph/J2DAnmLoader.h" +#include "MSL_C/stdio.h" #include "dol2asm.h" #include "dolphin/types.h" #include "f_op/f_op_msg_mng.h" diff --git a/src/d/d_resorce.cpp b/src/d/d_resorce.cpp index 4476c87e113..59e5e98dcd5 100644 --- a/src/d/d_resorce.cpp +++ b/src/d/d_resorce.cpp @@ -13,6 +13,7 @@ #include "JSystem/J3DGraphLoader/J3DModelLoader.h" #include "JSystem/JKernel/JKRSolidHeap.h" #include "MSL_C/MSL_Common/Src/extras.h" +#include "MSL_C/stdio.h" #include "d/com/d_com_inf_game.h" #include "dol2asm.h" #include "dolphin/mtx/mtx.h" diff --git a/src/d/d_stage.cpp b/src/d/d_stage.cpp index 8d4dab58e99..77e074e3cba 100644 --- a/src/d/d_stage.cpp +++ b/src/d/d_stage.cpp @@ -5,6 +5,7 @@ #include "d/d_stage.h" #include "JSystem/JKernel/JKRAramArchive.h" +#include "MSL_C/stdio.h" #include "SSystem/SComponent/c_malloc.h" #include "d/com/d_com_inf_game.h" #include "d/com/d_com_static.h" diff --git a/src/d/event/d_event_manager.cpp b/src/d/event/d_event_manager.cpp index 2127d52404d..5764650480c 100644 --- a/src/d/event/d_event_manager.cpp +++ b/src/d/event/d_event_manager.cpp @@ -5,6 +5,7 @@ #include "d/event/d_event_manager.h" #include "SSystem/SComponent/c_math.h" +#include "MSL_C/stdio.h" #include "Z2AudioLib/Z2AudioMgr.h" #include "d/com/d_com_inf_game.h" #include "d/d_camera.h" diff --git a/src/d/file/d_file_sel_info.cpp b/src/d/file/d_file_sel_info.cpp index d563d8d7692..c8a834516f2 100644 --- a/src/d/file/d_file_sel_info.cpp +++ b/src/d/file/d_file_sel_info.cpp @@ -4,6 +4,7 @@ // #include "d/file/d_file_sel_info.h" +#include "MSL_C/stdio.h" #include "dol2asm.h" #include "dolphin/types.h" diff --git a/src/d/menu/d_menu_save.cpp b/src/d/menu/d_menu_save.cpp index e673b7a13e9..d3a970f09dd 100644 --- a/src/d/menu/d_menu_save.cpp +++ b/src/d/menu/d_menu_save.cpp @@ -5,6 +5,7 @@ #include "d/menu/d_menu_save.h" #include "JSystem/J2DGraph/J2DAnmLoader.h" +#include "MSL_C/stdio.h" #include "d/com/d_com_inf_game.h" #include "d/file/d_file_sel_info.h" #include "d/file/d_file_sel_warning.h" diff --git a/src/d/msg/d_msg_class.cpp b/src/d/msg/d_msg_class.cpp index e1d4cff6cbb..cbd403363bf 100644 --- a/src/d/msg/d_msg_class.cpp +++ b/src/d/msg/d_msg_class.cpp @@ -4,6 +4,7 @@ // #include "d/msg/d_msg_class.h" +#include "MSL_C/stdio.h" #include "d/com/d_com_inf_game.h" #include "d/msg/d_msg_object.h" #include "d/msg/d_msg_unit.h" diff --git a/src/d/msg/d_msg_object.cpp b/src/d/msg/d_msg_object.cpp index aa170fde24c..6d50d3ae35d 100644 --- a/src/d/msg/d_msg_object.cpp +++ b/src/d/msg/d_msg_object.cpp @@ -6,6 +6,7 @@ #include "d/msg/d_msg_object.h" #include "d/msg/d_msg_out_font.h" #include "JSystem/JGadget/binary.h" +#include "MSL_C/stdio.h" #include "dol2asm.h" #include "dolphin/types.h" diff --git a/src/d/msg/d_msg_unit.cpp b/src/d/msg/d_msg_unit.cpp index bdf5169a5fd..bea422bea49 100644 --- a/src/d/msg/d_msg_unit.cpp +++ b/src/d/msg/d_msg_unit.cpp @@ -4,6 +4,7 @@ // #include "d/msg/d_msg_unit.h" +#include "MSL_C/stdio.h" #include "dol2asm.h" #include "d/kankyo/d_kankyo.h" #include "d/meter/d_meter2_info.h" diff --git a/src/d/particle/d_particle.cpp b/src/d/particle/d_particle.cpp index a743aa39105..349f823e042 100644 --- a/src/d/particle/d_particle.cpp +++ b/src/d/particle/d_particle.cpp @@ -4,6 +4,7 @@ // #include "d/particle/d_particle.h" +#include "MSL_C/stdio.h" #include "d/com/d_com_inf_game.h" #include "dol2asm.h" #include "dolphin/types.h" diff --git a/src/d/s/d_s_room.cpp b/src/d/s/d_s_room.cpp index 123607dee64..a0c978719bd 100644 --- a/src/d/s/d_s_room.cpp +++ b/src/d/s/d_s_room.cpp @@ -4,6 +4,7 @@ // #include "d/s/d_s_room.h" +#include "MSL_C/stdio.h" #include "d/com/d_com_inf_game.h" #include "d/d_procname.h" #include "d/s/d_s_play.h" diff --git a/src/d/save/d_save.cpp b/src/d/save/d_save.cpp index 23daffdd8cf..d4dc037a859 100644 --- a/src/d/save/d_save.cpp +++ b/src/d/save/d_save.cpp @@ -5,6 +5,7 @@ #include "d/save/d_save.h" #include "d/save/d_save_init.h" +#include "MSL_C/stdio.h" #include "Z2AudioLib/Z2AudioMgr.h" #include "d/com/d_com_inf_game.h" #include "d/meter/d_meter2_info.h" diff --git a/src/m_Do/m_Do_MemCardRWmng.cpp b/src/m_Do/m_Do_MemCardRWmng.cpp index 4e1bedc7db8..3dbd01c42b8 100644 --- a/src/m_Do/m_Do_MemCardRWmng.cpp +++ b/src/m_Do/m_Do_MemCardRWmng.cpp @@ -4,8 +4,7 @@ */ #include "m_Do/m_Do_MemCardRWmng.h" -#include "MSL_C/MSL_Common/Src/printf.h" -#include "MSL_C/MSL_Common/Src/string.h" +#include "MSL_C/stdio.h" #include "d/com/d_com_inf_game.h" #include "dol2asm.h" #include "dolphin/types.h" diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp index 598019f2479..70f01ca0f15 100644 --- a/src/m_Do/m_Do_ext.cpp +++ b/src/m_Do/m_Do_ext.cpp @@ -10,6 +10,7 @@ #include "JSystem/JKernel/JKRAssertHeap.h" #include "JSystem/JKernel/JKRExpHeap.h" #include "JSystem/JMath/JMath.h" +#include "MSL_C/stdio.h" #include "MSL_C/string.h" #include "SSystem/SComponent/c_xyz.h" #include "SSystem/SComponent/c_lib.h" diff --git a/src/m_Do/m_Do_printf.cpp b/src/m_Do/m_Do_printf.cpp index 4b61d7155df..ce5b2b8ea8b 100644 --- a/src/m_Do/m_Do_printf.cpp +++ b/src/m_Do/m_Do_printf.cpp @@ -4,13 +4,13 @@ */ #include "m_Do/m_Do_printf.h" +#include "MSL_C/stdio.h" #include "Runtime.PPCEABI.H/__va_arg.h" #include "dol2asm.h" #include "dolphin/os/OS.h" #include "dolphin/types.h" #include "m_Do/m_Do_ext.h" #include "dolphin/base/PPCArch.h" -#include "MSL_C/MSL_Common/Src/file_io.h" /* 80450B98-80450B9C -00001 0004+00 0/0 6/6 0/0 .sbss None */ u8 __OSReport_disable; @@ -37,7 +37,7 @@ asm void OSSwitchFiberEx(u32 param_0, u32 param_1, u32 param_2, u32 param_3, u32 /* 800067C8-800067F4 001108 002C+00 3/3 0/0 0/0 .text my_PutString__FPCc */ void my_PutString(const char* string) { - fputs(string, &__files.stdout); + fputs(string, stdout); } /* 800067F4-80006814 001134 0020+00 3/3 0/0 0/0 .text OSVAttention__FPCcP16__va_list_struct */ @@ -178,7 +178,7 @@ void OSReport_FatalError(char* fmt, ...) { OSVAttention(fmt, args); my_PutString("***** FATAL ERROR *****\n\x1B[m"); OSReportForceEnableOff(); - fflush(&__files.stdout); + fflush(stdout); print_errors++; va_end(args); @@ -195,7 +195,7 @@ void OSReport_Error(char* fmt, ...) { OSVReport(fmt, args); my_PutString("\x1B[m"); OSReportForceEnableOff(); - fflush(&__files.stdout); + fflush(stdout); va_end(args); } } @@ -211,7 +211,7 @@ void OSReport_Warning(char* fmt, ...) { OSVAttention(fmt, args); my_PutString("\x1B[m"); OSReportForceEnableOff(); - fflush(&__files.stdout); + fflush(stdout); va_end(args); } } diff --git a/src/msg/scrn/d_msg_scrn_explain.cpp b/src/msg/scrn/d_msg_scrn_explain.cpp index 0a2981c7d0b..5da4c77dbb7 100644 --- a/src/msg/scrn/d_msg_scrn_explain.cpp +++ b/src/msg/scrn/d_msg_scrn_explain.cpp @@ -4,6 +4,7 @@ // #include "msg/scrn/d_msg_scrn_explain.h" +#include "MSL_C/stdio.h" #include "dol2asm.h" #include "dolphin/types.h" diff --git a/src/msg/scrn/d_msg_scrn_light.cpp b/src/msg/scrn/d_msg_scrn_light.cpp index ea30a183f94..2ab19493244 100644 --- a/src/msg/scrn/d_msg_scrn_light.cpp +++ b/src/msg/scrn/d_msg_scrn_light.cpp @@ -4,6 +4,7 @@ // #include "msg/scrn/d_msg_scrn_light.h" +#include "MSL_C/stdio.h" #include "dol2asm.h" #include "dolphin/types.h"