summaryrefslogtreecommitdiffstats
path: root/private/ntos/fw/alpha/jxreboot.c
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;
}