Merge pull request #1679 from ergo720/error_log_lv

Add error log level to logging system
This commit is contained in:
RadWolfie 2019-07-20 22:20:45 -05:00 committed by GitHub
commit d4f8ec93bf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 18 additions and 11 deletions

View File

@ -100,6 +100,7 @@ std::atomic_int g_CurrentLogLevel = to_underlying(LOG_LEVEL::INFO);
const char log_debug[] = "DEBUG: "; const char log_debug[] = "DEBUG: ";
const char log_info[] = "INFO : "; const char log_info[] = "INFO : ";
const char log_warn[] = "WARN : "; const char log_warn[] = "WARN : ";
const char log_error[] = "ERROR: ";
const char log_fatal[] = "FATAL: "; const char log_fatal[] = "FATAL: ";
const char log_unkwn[] = "???? : "; const char log_unkwn[] = "???? : ";
@ -130,6 +131,9 @@ void NTAPI EmuLogEx(CXBXR_MODULE cxbxr_module, LOG_LEVEL level, const char *szWa
break; break;
case LOG_LEVEL::WARNING: case LOG_LEVEL::WARNING:
level_str = log_warn; level_str = log_warn;
break;
case LOG_LEVEL::ERROR2:
level_str = log_error;
break; break;
case LOG_LEVEL::FATAL: case LOG_LEVEL::FATAL:
level_str = log_fatal; level_str = log_fatal;

View File

@ -17,7 +17,8 @@
// * If not, write to the Free Software Foundation, Inc., // * If not, write to the Free Software Foundation, Inc.,
// * 59 Temple Place - Suite 330, Bostom, MA 02111-1307, USA. // * 59 Temple Place - Suite 330, Bostom, MA 02111-1307, USA.
// * // *
// * (c) 2016 Patrick van Logchem <pvanlogchem@gmail.com> // * (c) 2016 Patrick van Logchem <pvanlogchem@gmail.com>
// * (c) 2019 ergo720
// * // *
// * All rights reserved // * All rights reserved
// * // *
@ -34,10 +35,12 @@
#include <atomic> // For atomic_bool and atomic_uint #include <atomic> // For atomic_bool and atomic_uint
#include "common\util\CxbxUtil.h" // For g_bPrintfOn and to_underlying #include "common\util\CxbxUtil.h" // For g_bPrintfOn and to_underlying
// NOTE: using ERROR2 since windows.h imports an ERROR macro which would conflict otherwise
typedef enum class _LOG_LEVEL { typedef enum class _LOG_LEVEL {
DEBUG = 0, DEBUG = 0,
INFO, INFO,
WARNING, WARNING,
ERROR2,
FATAL, FATAL,
MAX, MAX,
}LOG_LEVEL; }LOG_LEVEL;

View File

@ -130,7 +130,7 @@ void InitXboxControllerHostBridge(void)
//disconnect to host if the host port of xinput exceeds the total xinput controller connected to host. //disconnect to host if the host port of xinput exceeds the total xinput controller connected to host.
if (g_XboxControllerHostBridge[port].dwHostPort >= total_xinput_gamepad) { if (g_XboxControllerHostBridge[port].dwHostPort >= total_xinput_gamepad) {
g_XboxControllerHostBridge[port].dwHostType = X_XONTROLLER_HOST_BRIDGE_HOSTTYPE_NOTCONNECT; g_XboxControllerHostBridge[port].dwHostType = X_XONTROLLER_HOST_BRIDGE_HOSTTYPE_NOTCONNECT;
printf("InitXboxControllerHostBridge: Host XInput port greater then total xinput controller connected. disconnect xbox port from host!\n"); EmuLog(LOG_LEVEL::DEBUG, "InitXboxControllerHostBridge: Host XInput port greater then total xinput controller connected. disconnect xbox port from host!");
} }
break; break;
case X_XONTROLLER_HOST_BRIDGE_HOSTTYPE_DINPUT: case X_XONTROLLER_HOST_BRIDGE_HOSTTYPE_DINPUT:
@ -148,7 +148,7 @@ void InitXboxControllerHostBridge(void)
//find corresponding XboxDeviceInfo //find corresponding XboxDeviceInfo
index=FindDeviceInfoIndexByXboxType(g_XboxControllerHostBridge[port].XboxDeviceInfo.ucType); index=FindDeviceInfoIndexByXboxType(g_XboxControllerHostBridge[port].XboxDeviceInfo.ucType);
if (index == -1) { if (index == -1) {
printf("XboxControllerHostBridge XboxDeviceInfo.ucType: %d not found in global XboxInputDeviceInfo vector!\n", g_XboxControllerHostBridge[port].XboxDeviceInfo.ucType); EmuLog(LOG_LEVEL::DEBUG, "XboxControllerHostBridge XboxDeviceInfo.ucType: %d not found in global XboxInputDeviceInfo vector!", g_XboxControllerHostBridge[port].XboxDeviceInfo.ucType);
} }
//copy XboxDeviceInfo from the global vector. //copy XboxDeviceInfo from the global vector.
g_XboxControllerHostBridge[port].XboxDeviceInfo.ucSubType = g_XboxInputDeviceInfo[index].ucSubType; g_XboxControllerHostBridge[port].XboxDeviceInfo.ucSubType = g_XboxInputDeviceInfo[index].ucSubType;

View File

@ -206,7 +206,7 @@ xboxkrnl::VOID NTAPI xboxkrnl::KiCheckTimerTable
if (Timer->DueTime.QuadPart <= CurrentTime.QuadPart) if (Timer->DueTime.QuadPart <= CurrentTime.QuadPart)
{ {
/* This is bad, breakpoint! */ /* This is bad, breakpoint! */
EmuLog(LOG_LEVEL::WARNING, "Invalid timer state!"); EmuLog(LOG_LEVEL::ERROR2, "Invalid timer state!");
DbgBreakPoint(); DbgBreakPoint();
} }
} }

View File

@ -366,7 +366,7 @@ void OHCI::OHCI_FrameBoundaryWorker()
// Writeback HCCA // Writeback HCCA
if (OHCI_WriteHCCA(m_Registers.HcHCCA, &hcca)) { if (OHCI_WriteHCCA(m_Registers.HcHCCA, &hcca)) {
EmuLog(LOG_LEVEL::WARNING, "HCCA write error at physical address 0x%X", m_Registers.HcHCCA); EmuLog(LOG_LEVEL::ERROR2, "HCCA write error at physical address 0x%X", m_Registers.HcHCCA);
OHCI_FatalError(); OHCI_FatalError();
} }
@ -381,7 +381,7 @@ void OHCI::OHCI_FatalError()
OHCI_SetInterrupt(OHCI_INTR_UE); OHCI_SetInterrupt(OHCI_INTR_UE);
OHCI_BusStop(); OHCI_BusStop();
EmuLog(LOG_LEVEL::WARNING, "An unrecoverable error has occoured!\n"); EmuLog(LOG_LEVEL::ERROR2, "An unrecoverable error has occoured!\n");
} }
bool OHCI::OHCI_ReadHCCA(xbaddr Paddr, OHCI_HCCA* Hcca) bool OHCI::OHCI_ReadHCCA(xbaddr Paddr, OHCI_HCCA* Hcca)
@ -498,7 +498,7 @@ int OHCI::OHCI_ServiceEDlist(xbaddr Head, int Completion)
for (current = Head; current; current = next_ed) { for (current = Head; current; current = next_ed) {
if (OHCI_ReadED(current, &ed)) { if (OHCI_ReadED(current, &ed)) {
EmuLog(LOG_LEVEL::WARNING, "ED read error at physical address 0x%X", current); EmuLog(LOG_LEVEL::ERROR2, "ED read error at physical address 0x%X", current);
OHCI_FatalError(); OHCI_FatalError();
return 0; return 0;
} }
@ -580,7 +580,7 @@ int OHCI::OHCI_ServiceTD(OHCI_ED* Ed)
return 1; return 1;
} }
if (OHCI_ReadTD(addr, &td)) { if (OHCI_ReadTD(addr, &td)) {
EmuLog(LOG_LEVEL::WARNING, "TD read error at physical address 0x%X", addr); EmuLog(LOG_LEVEL::ERROR2, "TD read error at physical address 0x%X", addr);
OHCI_FatalError(); OHCI_FatalError();
return 0; return 0;
} }
@ -1584,7 +1584,7 @@ int OHCI::OHCI_ServiceIsoTD(OHCI_ED* ed, int completion)
addr = ed->HeadP & OHCI_DPTR_MASK; addr = ed->HeadP & OHCI_DPTR_MASK;
if (OHCI_ReadIsoTD(addr, &iso_td)) { if (OHCI_ReadIsoTD(addr, &iso_td)) {
EmuLog(LOG_LEVEL::DEBUG, "ISO_TD read error at physical address 0x%X", addr); EmuLog(LOG_LEVEL::ERROR2, "ISO_TD read error at physical address 0x%X", addr);
OHCI_FatalError(); OHCI_FatalError();
return 0; return 0;
} }

View File

@ -17,7 +17,7 @@
// * If not, write to the Free Software Foundation, Inc., // * If not, write to the Free Software Foundation, Inc.,
// * 59 Temple Place - Suite 330, Bostom, MA 02111-1307, USA. // * 59 Temple Place - Suite 330, Bostom, MA 02111-1307, USA.
// * // *
// * (c) 2018 ergo720 // * (c) 2018-2019 ergo720
// * // *
// * All rights reserved // * All rights reserved
// * // *
@ -125,7 +125,7 @@ INT_PTR CALLBACK DlgLogConfigProc(HWND hWndDlg, UINT uMsg, WPARAM wParam, LPARAM
hHandle = GetDlgItem(hWndDlg, IDC_EVENT_LV); hHandle = GetDlgItem(hWndDlg, IDC_EVENT_LV);
TempLevel = to_underlying(LOG_LEVEL::DEBUG); TempLevel = to_underlying(LOG_LEVEL::DEBUG);
for (auto i : { "Debug" , "Info" ,"Warning", "Fatal" }) { for (auto i : { "Debug" , "Info" ,"Warning", "Error", "Fatal" }) {
LRESULT index = SendMessage(hHandle, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>(i)); LRESULT index = SendMessage(hHandle, CB_ADDSTRING, 0, reinterpret_cast<LPARAM>(i));
SendMessage(hHandle, CB_SETITEMDATA, index, TempLevel); SendMessage(hHandle, CB_SETITEMDATA, index, TempLevel);
TempLevel++; TempLevel++;