From 486425ed00acec134f8799bdde64bfd093c5fb55 Mon Sep 17 00:00:00 2001 From: Amlal El Mahrouss Date: Thu, 26 Dec 2024 21:19:14 +0100 Subject: IMPL: A lot of new changes, see details. Signed-off-by: Amlal El Mahrouss --- dev/Mod/APM/APM.h | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 dev/Mod/APM/APM.h (limited to 'dev/Mod/APM') diff --git a/dev/Mod/APM/APM.h b/dev/Mod/APM/APM.h new file mode 100644 index 00000000..6c631802 --- /dev/null +++ b/dev/Mod/APM/APM.h @@ -0,0 +1,37 @@ +/* ------------------------------------------- + + Copyright (C) 2024, Theater Quality Inc, all rights reserved. + +------------------------------------------- */ + +#pragma once + +#include + +namespace Kernel +{ + typedef Int32 APMPowerCmd; + + enum + { + kAPMPowerCommandInvalid = 0x00, + kAPMPowerCommandStop = 0x01, + kAPMPowerCommandStart = 0x02, + kAPMPowerCommandSleep = 0x04, + kAPMPowerCommandWakeup = 0x06, + kAPMPowerCommandShutdown = 0x07, + kAPMPowerCommandReboot = 0x08, + }; + + /// @brief Send a APM command into it's own DMA space. + /// @param base_dma the DMA base address. + /// @param cmd the command. + /// @return status code. + EXTERN_C Int32 apm_send_dma_command(Ptr64 register_addr, APMPowerCmd value); + + /// @brief Send a APM command into it's own IO space. + /// @param base_dma the IO base port. + /// @param cmd the command. + /// @return status code. + EXTERN_C Int32 apm_send_io_command(UInt16 cmd, APMPowerCmd value); +} // namespace Kernel -- cgit v1.2.3