https://git.reactos.org/?p=reactos.git;a=commitdiff;h=9ba1849a9765b049527c0…
commit 9ba1849a9765b049527c0bf60f8a91efe70e2991
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Tue Jun 20 22:28:31 2023 +0200
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Sun Jun 25 19:39:44 2023 +0200
[HAL][MINIHAL] Minor cleanup in reboot.c files (#5359)
And remove pic/processor.c from minihal compilation.
---
hal/halarm/generic/reboot.c | 16 +++++++++++-----
hal/halx86/generic/reboot.c | 23 +++++++++++++----------
hal/halx86/minihal/CMakeLists.txt | 1 -
hal/halx86/pc98/reboot.c | 35 +++++++++++++++++++++--------------
hal/halx86/pic/processor.c | 1 -
hal/halx86/xbox/reboot.c | 39 ++++++++++++++++++++++++++-------------
6 files changed, 71 insertions(+), 44 deletions(-)
diff --git a/hal/halarm/generic/reboot.c b/hal/halarm/generic/reboot.c
index 51de4862bc8..408313c98c2 100644
--- a/hal/halarm/generic/reboot.c
+++ b/hal/halarm/generic/reboot.c
@@ -9,35 +9,41 @@
/* INCLUDES ******************************************************************/
#include <hal.h>
-#define NDEBUG
-#include <debug.h>
/* PUBLIC FUNCTIONS **********************************************************/
+#ifndef _MINIHAL_
/*
* @implemented
*/
VOID
NTAPI
-HalReturnToFirmware(IN FIRMWARE_REENTRY Action)
+HalReturnToFirmware(
+ _In_ FIRMWARE_REENTRY Action)
{
/* Check what kind of action this is */
switch (Action)
{
/* All recognized actions */
case HalHaltRoutine:
+ case HalPowerDownRoutine:
+ case HalRestartRoutine:
case HalRebootRoutine:
-
+ {
/* Acquire the display */
InbvAcquireDisplayOwnership();
+ // TODO: Reboot
+ }
/* Anything else */
default:
-
+ {
/* Print message and break */
DbgPrint("HalReturnToFirmware called!\n");
DbgBreakPoint();
+ }
}
}
+#endif // _MINIHAL_
/* EOF */
diff --git a/hal/halx86/generic/reboot.c b/hal/halx86/generic/reboot.c
index 587b116c6f0..ca83b3fb733 100644
--- a/hal/halx86/generic/reboot.c
+++ b/hal/halx86/generic/reboot.c
@@ -10,21 +10,18 @@
/* INCLUDES ******************************************************************/
#include <hal.h>
-#define NDEBUG
-#include <debug.h>
/* PRIVATE FUNCTIONS *********************************************************/
-VOID
-NTAPI
+static VOID
HalpWriteResetCommand(VOID)
{
/* Generate RESET signal via keyboard controller */
WRITE_PORT_UCHAR((PUCHAR)0x64, 0xFE);
};
+DECLSPEC_NORETURN
VOID
-NTAPI
HalpReboot(VOID)
{
PHYSICAL_ADDRESS PhysicalAddress;
@@ -69,39 +66,45 @@ HalpReboot(VOID)
/* Halt the CPU */
__halt();
+ UNREACHABLE;
}
/* PUBLIC FUNCTIONS **********************************************************/
+#ifndef _MINIHAL_
/*
* @implemented
*/
VOID
NTAPI
-HalReturnToFirmware(IN FIRMWARE_REENTRY Action)
+HalReturnToFirmware(
+ _In_ FIRMWARE_REENTRY Action)
{
/* Check what kind of action this is */
switch (Action)
{
/* All recognized actions */
case HalHaltRoutine:
+ case HalPowerDownRoutine:
+ case HalRestartRoutine:
case HalRebootRoutine:
-
-#ifndef _MINIHAL_
+ {
/* Acquire the display */
InbvAcquireDisplayOwnership();
-#endif
/* Call the internal reboot function */
HalpReboot();
+ }
/* Anything else */
default:
-
+ {
/* Print message and break */
DbgPrint("HalReturnToFirmware called!\n");
DbgBreakPoint();
+ }
}
}
+#endif // _MINIHAL_
/* EOF */
diff --git a/hal/halx86/minihal/CMakeLists.txt b/hal/halx86/minihal/CMakeLists.txt
index de7f4de04ed..d446bf3cc7b 100644
--- a/hal/halx86/minihal/CMakeLists.txt
+++ b/hal/halx86/minihal/CMakeLists.txt
@@ -14,7 +14,6 @@ list(APPEND MINI_HAL_SOURCE
../generic/timer.c
../generic/usage.c
../pic/pic.c
- ../pic/processor.c
../include/hal.h
halinit.c)
diff --git a/hal/halx86/pc98/reboot.c b/hal/halx86/pc98/reboot.c
index d26fef2d1d2..6944ace3315 100644
--- a/hal/halx86/pc98/reboot.c
+++ b/hal/halx86/pc98/reboot.c
@@ -9,24 +9,22 @@
#include <hal.h>
-#define NDEBUG
-#include <debug.h>
-
/* PRIVATE FUNCTIONS *********************************************************/
-static VOID
-DECLSPEC_NORETURN
-NTAPI
+#ifndef _MINIHAL_
+static DECLSPEC_NORETURN
+VOID
HalpFreezeSystem(VOID)
{
- HaliHaltSystem();
-
- while (TRUE)
- NOTHING;
+ /* Disable interrupts and halt the CPU */
+ _disable();
+ __halt();
+ UNREACHABLE;
}
+#endif
+DECLSPEC_NORETURN
VOID
-NTAPI
HalpReboot(VOID)
{
/* Disable interrupts */
@@ -42,10 +40,12 @@ HalpReboot(VOID)
/* Halt the CPU */
__halt();
+ UNREACHABLE;
}
/* PUBLIC FUNCTIONS **********************************************************/
+#ifndef _MINIHAL_
VOID
NTAPI
HalReturnToFirmware(
@@ -53,23 +53,30 @@ HalReturnToFirmware(
{
switch (Action)
{
+ /* All recognized actions */
+ case HalHaltRoutine:
case HalPowerDownRoutine:
HalpFreezeSystem();
- case HalHaltRoutine:
+ case HalRestartRoutine:
case HalRebootRoutine:
-#ifndef _MINIHAL_
+ {
/* Acquire the display */
InbvAcquireDisplayOwnership();
-#endif
/* Call the internal reboot function */
HalpReboot();
+ }
/* Anything else */
default:
+ {
/* Print message and break */
DbgPrint("HalReturnToFirmware called!\n");
DbgBreakPoint();
+ }
}
}
+#endif // _MINIHAL_
+
+/* EOF */
diff --git a/hal/halx86/pic/processor.c b/hal/halx86/pic/processor.c
index 58bf6e0187e..2ea03b57326 100644
--- a/hal/halx86/pic/processor.c
+++ b/hal/halx86/pic/processor.c
@@ -27,7 +27,6 @@ HaliHaltSystem(VOID)
/* FUNCTIONS *****************************************************************/
-
/*
* @implemented
*/
diff --git a/hal/halx86/xbox/reboot.c b/hal/halx86/xbox/reboot.c
index 1f2dec387c1..21de1d93073 100644
--- a/hal/halx86/xbox/reboot.c
+++ b/hal/halx86/xbox/reboot.c
@@ -15,14 +15,13 @@
#include "halxbox.h"
-#define NDEBUG
-#include <debug.h>
-
/* PRIVATE FUNCTIONS *********************************************************/
-VOID
-NTAPI
-SMBusWriteByte(UCHAR Address, UCHAR Register, UCHAR Data)
+static VOID
+SMBusWriteByte(
+ _In_ UCHAR Address,
+ _In_ UCHAR Register,
+ _In_ UCHAR Data)
{
INT Retries = 50;
@@ -63,35 +62,47 @@ SMBusWriteByte(UCHAR Address, UCHAR Register, UCHAR Data)
}
}
+static DECLSPEC_NORETURN
VOID
-DECLSPEC_NORETURN
-NTAPI
-HalpXboxPowerAction(IN UCHAR Action)
+HalpXboxPowerAction(
+ _In_ UCHAR Action)
{
+ /* Disable interrupts */
+ _disable();
+
+ /* Send the command */
SMBusWriteByte(SMB_DEVICE_SMC_PIC16LC, SMC_REG_POWER, Action);
/* Halt the CPU */
__halt();
+ UNREACHABLE;
+}
- while (TRUE); /* 'noreturn' function */
+DECLSPEC_NORETURN
+VOID
+HalpReboot(VOID)
+{
+ HalpXboxPowerAction(SMC_REG_POWER_RESET);
}
/* PUBLIC FUNCTIONS **********************************************************/
+#ifndef _MINIHAL_
/*
* @implemented
*/
VOID
NTAPI
-HalReturnToFirmware(IN FIRMWARE_REENTRY Action)
+HalReturnToFirmware(
+ _In_ FIRMWARE_REENTRY Action)
{
/* Check what kind of action this is */
switch (Action)
{
- /* All recognized actions */
+ /* All recognized actions: call the internal power function */
+ case HalHaltRoutine:
case HalPowerDownRoutine:
{
- /* Call the internal power function */
HalpXboxPowerAction(SMC_REG_POWER_SHUTDOWN);
}
case HalRestartRoutine:
@@ -102,6 +113,7 @@ HalReturnToFirmware(IN FIRMWARE_REENTRY Action)
{
HalpXboxPowerAction(SMC_REG_POWER_RESET);
}
+
/* Anything else */
default:
{
@@ -111,5 +123,6 @@ HalReturnToFirmware(IN FIRMWARE_REENTRY Action)
}
}
}
+#endif // _MINIHAL_
/* EOF */