diff --git a/src/xenia/kernel/xboxkrnl/xboxkrnl_strings.cc b/src/xenia/kernel/xboxkrnl/xboxkrnl_strings.cc index bc6e71397..ff56a8889 100644 --- a/src/xenia/kernel/xboxkrnl/xboxkrnl_strings.cc +++ b/src/xenia/kernel/xboxkrnl/xboxkrnl_strings.cc @@ -19,6 +19,9 @@ #include "xenia/kernel/xthread.h" #include "xenia/xbox.h" +DEFINE_bool(log_string_format_kernel_calls, false, + "Log kernel calls with the kHighFrequency tag.", "Logging"); + namespace xe { namespace kernel { namespace xboxkrnl { @@ -841,8 +844,11 @@ SHIM_CALL _snprintf_shim(PPCContext* ppc_context, KernelState* kernel_state) { int32_t buffer_count = SHIM_GET_ARG_32(1); uint32_t format_ptr = SHIM_GET_ARG_32(2); - XELOGD("_snprintf({:08X}, {}, {:08X}({}), ...)", buffer_ptr, buffer_count, - format_ptr, xe::load_and_swap(SHIM_MEM_ADDR(format_ptr))); + if (cvars::log_high_frequency_kernel_calls) { + XELOGD("_snprintf({:08X}, {}, {:08X}({}), ...)", buffer_ptr, buffer_count, + format_ptr, + xe::load_and_swap(SHIM_MEM_ADDR(format_ptr))); + } if (buffer_ptr == 0 || buffer_count <= 0 || format_ptr == 0) { SHIM_SET_RETURN_32(-1); @@ -877,8 +883,10 @@ SHIM_CALL sprintf_shim(PPCContext* ppc_context, KernelState* kernel_state) { uint32_t buffer_ptr = SHIM_GET_ARG_32(0); uint32_t format_ptr = SHIM_GET_ARG_32(1); - XELOGD("sprintf({:08X}, {:08X}({}), ...)", buffer_ptr, format_ptr, - xe::load_and_swap(SHIM_MEM_ADDR(format_ptr))); + if (cvars::log_high_frequency_kernel_calls) { + XELOGD("sprintf({:08X}, {:08X}({}), ...)", buffer_ptr, format_ptr, + xe::load_and_swap(SHIM_MEM_ADDR(format_ptr))); + } if (buffer_ptr == 0 || format_ptr == 0) { SHIM_SET_RETURN_32(-1); @@ -907,10 +915,12 @@ SHIM_CALL _snwprintf_shim(PPCContext* ppc_context, KernelState* kernel_state) { int32_t buffer_count = SHIM_GET_ARG_32(1); uint32_t format_ptr = SHIM_GET_ARG_32(2); - XELOGD("_snwprintf({:08X}, {}, {:08X}({}), ...)", buffer_ptr, buffer_count, - format_ptr, - xe::to_utf8( - xe::load_and_swap(SHIM_MEM_ADDR(format_ptr)))); + if (cvars::log_high_frequency_kernel_calls) { + XELOGD("_snwprintf({:08X}, {}, {:08X}({}), ...)", buffer_ptr, buffer_count, + format_ptr, + xe::to_utf8( + xe::load_and_swap(SHIM_MEM_ADDR(format_ptr)))); + } if (buffer_ptr == 0 || buffer_count <= 0 || format_ptr == 0) { SHIM_SET_RETURN_32(-1); @@ -945,9 +955,11 @@ SHIM_CALL swprintf_shim(PPCContext* ppc_context, KernelState* kernel_state) { uint32_t buffer_ptr = SHIM_GET_ARG_32(0); uint32_t format_ptr = SHIM_GET_ARG_32(1); - XELOGD("swprintf({:08X}, {:08X}({}), ...)", buffer_ptr, format_ptr, - xe::to_utf8( - xe::load_and_swap(SHIM_MEM_ADDR(format_ptr)))); + if (cvars::log_high_frequency_kernel_calls) { + XELOGD("swprintf({:08X}, {:08X}({}), ...)", buffer_ptr, format_ptr, + xe::to_utf8( + xe::load_and_swap(SHIM_MEM_ADDR(format_ptr)))); + } if (buffer_ptr == 0 || format_ptr == 0) { SHIM_SET_RETURN_32(-1); @@ -977,9 +989,11 @@ SHIM_CALL _vsnprintf_shim(PPCContext* ppc_context, KernelState* kernel_state) { uint32_t format_ptr = SHIM_GET_ARG_32(2); uint32_t arg_ptr = SHIM_GET_ARG_32(3); - XELOGD("_vsnprintf({:08X}, {}, {:08X}({}), {:08X})", buffer_ptr, buffer_count, - format_ptr, xe::load_and_swap(SHIM_MEM_ADDR(format_ptr)), - arg_ptr); + if (cvars::log_high_frequency_kernel_calls) { + XELOGD("_vsnprintf({:08X}, {}, {:08X}({}), {:08X})", buffer_ptr, + buffer_count, format_ptr, + xe::load_and_swap(SHIM_MEM_ADDR(format_ptr)), arg_ptr); + } if (buffer_ptr == 0 || buffer_count <= 0 || format_ptr == 0) { SHIM_SET_RETURN_32(-1); @@ -1018,11 +1032,13 @@ SHIM_CALL _vsnwprintf_shim(PPCContext* ppc_context, KernelState* kernel_state) { uint32_t format_ptr = SHIM_GET_ARG_32(2); uint32_t arg_ptr = SHIM_GET_ARG_32(3); - XELOGD( - "_vsnwprintf({:08X}, {}, {:08X}({}), {:08X})", buffer_ptr, buffer_count, - format_ptr, - xe::to_utf8(xe::load_and_swap(SHIM_MEM_ADDR(format_ptr))), - arg_ptr); + if (cvars::log_high_frequency_kernel_calls) { + XELOGD("_vsnwprintf({:08X}, {}, {:08X}({}), {:08X})", buffer_ptr, + buffer_count, format_ptr, + xe::to_utf8( + xe::load_and_swap(SHIM_MEM_ADDR(format_ptr))), + arg_ptr); + } if (buffer_ptr == 0 || buffer_count <= 0 || format_ptr == 0) { SHIM_SET_RETURN_32(-1); @@ -1060,8 +1076,10 @@ SHIM_CALL vsprintf_shim(PPCContext* ppc_context, KernelState* kernel_state) { uint32_t format_ptr = SHIM_GET_ARG_32(1); uint32_t arg_ptr = SHIM_GET_ARG_32(2); - XELOGD("vsprintf({:08X}, {:08X}({}), {:08X})", buffer_ptr, format_ptr, - xe::load_and_swap(SHIM_MEM_ADDR(format_ptr)), arg_ptr); + if (cvars::log_high_frequency_kernel_calls) { + XELOGD("vsprintf({:08X}, {:08X}({}), {:08X})", buffer_ptr, format_ptr, + xe::load_and_swap(SHIM_MEM_ADDR(format_ptr)), arg_ptr); + } if (buffer_ptr == 0 || format_ptr == 0) { SHIM_SET_RETURN_32(-1); @@ -1089,10 +1107,12 @@ SHIM_CALL _vscwprintf_shim(PPCContext* ppc_context, KernelState* kernel_state) { uint32_t format_ptr = SHIM_GET_ARG_32(0); uint32_t arg_ptr = SHIM_GET_ARG_32(1); - XELOGD( - "_vscwprintf({:08X}({}), {:08X})", format_ptr, - xe::to_utf8(xe::load_and_swap(SHIM_MEM_ADDR(format_ptr))), - arg_ptr); + if (cvars::log_high_frequency_kernel_calls) { + XELOGD("_vscwprintf({:08X}({}), {:08X})", format_ptr, + xe::to_utf8( + xe::load_and_swap(SHIM_MEM_ADDR(format_ptr))), + arg_ptr); + } if (format_ptr == 0) { SHIM_SET_RETURN_32(-1); @@ -1115,10 +1135,12 @@ SHIM_CALL vswprintf_shim(PPCContext* ppc_context, KernelState* kernel_state) { uint32_t format_ptr = SHIM_GET_ARG_32(1); uint32_t arg_ptr = SHIM_GET_ARG_32(2); - XELOGD( - "vswprintf({:08X}, {:08X}({}), {:08X})", buffer_ptr, format_ptr, - xe::to_utf8(xe::load_and_swap(SHIM_MEM_ADDR(format_ptr))), - arg_ptr); + if (cvars::log_high_frequency_kernel_calls) { + XELOGD("vswprintf({:08X}, {:08X}({}), {:08X})", buffer_ptr, format_ptr, + xe::to_utf8( + xe::load_and_swap(SHIM_MEM_ADDR(format_ptr))), + arg_ptr); + } if (buffer_ptr == 0 || format_ptr == 0) { SHIM_SET_RETURN_32(-1);