NT4/private/ntos/fw/alpha/jxreboot.c
2020-09-30 17:12:29 +02:00

158 lines
2.3 KiB
C
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*++
Copyright (c) 1991 Microsoft Corporation
Copyright (c) 1993 Digital Equipment Corporation
Module Name:
jxreboot.c
Abstract:
This module contains the Firmware Termination Functions.
Author:
Lluis Abello (lluis) 4-Sep-1991
Revision History:
11-June-1992 John DeRosa [DEC]
Added Alpha/Jensen modifications.
--*/
#include "fwp.h"
#include "fwstring.h"
VOID
ResetSystem (
IN VOID
)
/*++
Routine Description:
This effectively resets the system by restarting the firmware
at the beginning of the firmware PALcode.
Arguments:
None.
Return Value:
None.
--*/
{
AlphaInstHalt();
}
VOID
FwRestart(
IN VOID
)
/*++
Routine Description:
This routine implements the Firmware Restart termination function.
It generates a soft reset to the system.
Arguments:
None.
Return Value:
Does not return to the caller.
--*/
{
ResetSystem();
}
VOID
FwReboot(
IN VOID
)
/*++
Routine Description:
This routine implements the Firmware Reboot termination function.
It generates a soft reset to the system.
Arguments:
None.
Return Value:
Does not return to the caller.
--*/
{
ResetSystem();
}
VOID
FwEnterInteractiveMode(
IN VOID
)
/*++
Routine Description:
This routine implements the Firmware EnterInteractiveMode function.
Arguments:
None.
Return Value:
None.
--*/
{
FwMonitor(3);
return;
}
VOID
FwTerminationInitialize(
IN VOID
)
/*++
Routine Description:
//
// Initialize the termination function entry points in the transfer vector
//
This routine initializes the termination function entry points
in the transfer vector.
Arguments:
None.
Return Value:
None.
--*/
{
(PARC_HALT_ROUTINE)SYSTEM_BLOCK->FirmwareVector[HaltRoutine] = FwHalt;
(PARC_POWERDOWN_ROUTINE)SYSTEM_BLOCK->FirmwareVector[PowerDownRoutine] = FwHalt;
(PARC_RESTART_ROUTINE)SYSTEM_BLOCK->FirmwareVector[RestartRoutine] = FwRestart;
(PARC_REBOOT_ROUTINE)SYSTEM_BLOCK->FirmwareVector[RebootRoutine] = FwReboot;
(PARC_INTERACTIVE_MODE_ROUTINE)SYSTEM_BLOCK->FirmwareVector[InteractiveModeRoutine] = FwEnterInteractiveMode;
// (PARC_RETURN_FROM_MAIN_ROUTINE)SYSTEM_BLOCK->FirmwareVector[ReturnFromMainRoutine] = FwReturnFromMain;
}