summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/HALKit/ARM64/HalACPIFactoryInterface.cc
blob: 27ea09772cc46a7080a9e293d805d21b495b6c08 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/* -------------------------------------------

	Copyright (C) 2024-2025, Amlal El Mahrouss, all rights reserved.

------------------------------------------- */

#include <modules/ACPI/ACPIFactoryInterface.h>
#include <NewKit/KString.h>
#include <ArchKit/ArchKit.h>
#include <KernelKit/MemoryMgr.h>
#include <modules/APM/APM.h>

namespace Kernel
{
	ACPIFactoryInterface::ACPIFactoryInterface(VoidPtr rsp_ptr)
		: fRsdp(rsp_ptr), fEntries(0)
	{
	}

	BOOL ACPIFactoryInterface::Shutdown()
	{
		apm_send_io_command(kAPMPowerCommandShutdown, 0);
		return NO;
	}

	/// @brief Reboot machine in either ACPI or by triple faulting.
	/// @return nothing it's a reboot.
	Void ACPIFactoryInterface::Reboot()
	{
		apm_send_io_command(kAPMPowerCommandReboot, 0);
	}
} // namespace Kernel