blob: f34bdb9e6299f1d0e3e6095c4e331c7d1485d8f8 (
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
|
#include <cstdint>
#include <drivers/powerbutton.hpp>
#include <klibc/stdio.hpp>
#if defined(__x86_64__)
#include <uacpi/event.h>
#include <generic/poweroff.hpp>
static uacpi_interrupt_ret handle_power_button(uacpi_handle ctx) {
(void)ctx;
poweroff::reboot();
return UACPI_INTERRUPT_HANDLED;
}
void drivers::powerbutton::init() {
uacpi_install_fixed_event_handler(
UACPI_FIXED_EVENT_POWER_BUTTON,
handle_power_button, UACPI_NULL
);
klibc::printf("PowerButton: Registered powerbutton at ip 0x%p\r\n",(std::uint64_t)handle_power_button);
}
#else
void drivers::powerbutton::init() {
}
#endif
|