Migrate PO subsystem to C++
All checks were successful
Builds / ExectOS (amd64, debug) (push) Successful in 36s
Builds / ExectOS (amd64, release) (push) Successful in 33s
Builds / ExectOS (i686, release) (push) Successful in 27s
Builds / ExectOS (i686, debug) (push) Successful in 29s

This commit is contained in:
2025-09-11 22:52:40 +02:00
parent 3a11d536d5
commit 0647b853a6
7 changed files with 65 additions and 14 deletions

17
xtoskrnl/includes/po.hh Normal file
View File

@@ -0,0 +1,17 @@
/**
* PROJECT: ExectOS
* COPYRIGHT: See COPYING.md in the top level directory
* FILE: xtoskrnl/includes/po.hh
* DESCRIPTION: Power Management
* DEVELOPERS: Aiken Harris <harraiken91@gmail.com>
*/
#ifndef __XTOSKRNL_PO_HH
#define __XTOSKRNL_PO_HH
#include <xtos.hh>
#include <po/idle.hh>
#endif /* __XTOSKRNL_PO_HH */

View File

@@ -0,0 +1,33 @@
/**
* PROJECT: ExectOS
* COPYRIGHT: See COPYING.md in the top level directory
* FILE: xtoskrnl/includes/po/idle.hh
* DESCRIPTION: Processor idle functionality support
* DEVELOPERS: Aiken Harris <harraiken91@gmail.com>
*/
#ifndef __XTOSKRNL_PO_IDLE_HH
#define __XTOSKRNL_PO_IDLE_HH
#include <xtos.hh>
/* Runtime Library */
namespace PO
{
class Idle
{
public:
STATIC XTAPI VOID InitializeProcessorIdleState(IN OUT PKPROCESSOR_CONTROL_BLOCK Prcb);
private:
STATIC XTFASTCALL VOID Idle0Function(IN PPROCESSOR_POWER_STATE PowerState);
STATIC XTAPI VOID PerfIdle(IN PPROCESSOR_POWER_STATE PowerState);
STATIC XTAPI VOID PerfIdleDpc(IN PKDPC Dpc,
IN PVOID DeferredContext,
IN PVOID SystemArgument1,
IN PVOID SystemArgument2);
};
}
#endif /* __XTOSKRNL_PO_IDLE_HH */

View File

@@ -30,4 +30,5 @@ extern "C" {
#include <ex.hh>
#include <hl.hh>
#include <ke.hh>
#include <po.hh>
#include <rtl.hh>