blob: 5e17f0932cd939547307a8f5e0beb64b9aef2b44 (
plain) (
blame)
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
/*++
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;
}
|