Force Kmd Notify timeout for Windows machines running on battery

- This is to improve battery usage while waiting in busy loop on CPU
- New Kmd Notify helper to maintain dynamic parameters
- Ask OS about battery status on longer waits
- Pick different timeout when using battery and optimization is disabled

Change-Id: I5f9c8c5a9c635652aac27c707f2b55933947a7fb
This commit is contained in:
Dunajski, Bartosz
2018-04-10 10:26:59 +02:00
committed by sys_ocldev
parent 5fdd853506
commit acf97999f3
17 changed files with 397 additions and 105 deletions

View File

@@ -28,6 +28,9 @@ namespace SysCalls {
constexpr uintptr_t dummyHandle = static_cast<uintptr_t>(0x7);
BOOL systemPowerStatusRetVal = 1;
BYTE systemPowerStatusACLineStatusOverride = 1;
HANDLE createEvent(LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, BOOL bInitialState, LPCSTR lpName) {
return reinterpret_cast<HANDLE>(dummyHandle);
}
@@ -36,6 +39,11 @@ BOOL closeHandle(HANDLE hObject) {
return (reinterpret_cast<HANDLE>(dummyHandle) == hObject) ? TRUE : FALSE;
}
BOOL getSystemPowerStatus(LPSYSTEM_POWER_STATUS systemPowerStatusPtr) {
systemPowerStatusPtr->ACLineStatus = systemPowerStatusACLineStatusOverride;
return systemPowerStatusRetVal;
}
} // namespace SysCalls
} // namespace OCLRT