Improve shutdown driver (#120)

This commit is contained in:
Alex Kotov 2022-11-28 19:34:36 +04:00 committed by GitHub
parent 0df3f9cbba
commit fb5ff7f964
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 2 additions and 22 deletions

View File

@ -5,14 +5,6 @@
extern "C" {
#endif
#include <stdbool.h>
// TODO: make this cross-platform
#define KERNAUX_DRIVERS_SHUTDOWN_INT 3
#define KERNAUX_DRIVERS_SHUTDOWN_ASM "int $3"
bool kernaux_drivers_shutdown_is_doing();
__attribute__((noreturn))
void kernaux_drivers_shutdown_halt();
void kernaux_drivers_shutdown_poweroff();

View File

@ -5,21 +5,11 @@
#include <kernaux/drivers/shutdown.h>
#include <kernaux/drivers/qemu.h>
#include <stdbool.h>
static bool is_doing = false;
bool kernaux_drivers_shutdown_is_doing()
{
return is_doing;
}
void kernaux_drivers_shutdown_halt()
{
is_doing = true;
#ifdef ASM_X86
for (;;) __asm__ __volatile__(KERNAUX_DRIVERS_SHUTDOWN_ASM);
// Disable interrupts
__asm__ __volatile__("cli");
#endif
volatile int x = 0;
@ -28,8 +18,6 @@ void kernaux_drivers_shutdown_halt()
void kernaux_drivers_shutdown_poweroff()
{
is_doing = true;
kernaux_drivers_qemu_poweroff();
// If we can't poweroff then we halt