1
0
mirror of https://github.com/deadw00d/AROS.git synced 2025-10-26 21:18:42 +00:00
Files
AROS-v0/arch/all-mingw32/exec/shutdowna.c
deadwood 1ebb5df920 Introduce EMERGENCY flag for ShutdownA
This flag indicates that something has already gone wrong and least
amount of code should be used to do reboot or shutdown. This means
not running non-critical reset handlers. Note that the handler itself
needs to decide whethere it is critical or not.
2022-01-16 10:28:06 +01:00

37 lines
829 B
C

/*
Copyright (C) 1995-2010, The AROS Development Team. All rights reserved.
Desc: ShutdownA() - Shut down the operating system, Windows-hosted implementation.
*/
#include <aros/debug.h>
#include "exec_intern.h"
AROS_LH1(ULONG, ShutdownA,
AROS_LHA(ULONG, action, D0),
struct ExecBase *, SysBase, 173, Exec)
{
AROS_LIBFUNC_INIT
/* WinAPI CreateProcess() call may silently abort if scheduler attempts task switching
while it's running. There's no sense in this beyond this point, so we simply Disable() */
Disable();
switch(action & SD_ACTION_MASK)
{
case SD_ACTION_POWEROFF:
PD(SysBase).ExitProcess(0);
break;
case SD_ACTION_COLDREBOOT:
PD(SysBase).Reboot(FALSE);
break;
}
Enable();
return 0;
AROS_LIBFUNC_EXIT
}