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
|
/*++
Copyright (c) 1989 Microsoft Corporation
Copyright (c) 1995 Digital Equipment Corporation
Module Name:
busdata.c
Abstract:
This module contains get/set bus data routines.
Author:
Darryl E. Havens (darrylh) 11-Apr-1990
Eric Rehm 13-Apr-1995
Environment:
Kernel mode
Revision History:
--*/
#include "halp.h"
//
// External Function Prototypes
//
ULONG
HalpNoBusData (
IN PVOID BusHandler,
IN PVOID RootHandler,
IN ULONG SlotNumber,
IN PVOID Buffer,
IN ULONG Offset,
IN ULONG Length
);
#ifdef ALLOC_PRAGMA
#pragma alloc_text(INIT,HalpRegisterInternalBusHandlers)
#endif
VOID
HalpRegisterInternalBusHandlers (
VOID
)
/*++
Routine Description:
This function registers the bushandlers for buses on the system
that will always be present on the system.
Arguments:
None.
Return Value:
None.
--*/
{
PBUS_HANDLER Bus;
//
// Initalize BusHandler data before registering any handlers
//
HalpInitBusHandler ();
//
// Build the processor internal bus 0
//
HaliRegisterBusHandler (ProcessorInternal, // Bus Type
-1, // No config space
0, // Bus Number
-1, // No parent bus type
0, // No parent bus number
0, // No extension data
NULL, // No install handler
&Bus); // Bushandler return
Bus->GetInterruptVector = HalpGetSystemInterruptVector;
//
// Build internal-bus 0, or system level bus
//
HaliRegisterBusHandler (Internal, // Bus Type
-1, // No config space
0, // Bus Number
-1, // No parent bus type
0, // No parent bus number
0, // No extension data
NULL, // No install handler
&Bus); // Bushandler return
Bus->GetInterruptVector = HalpGetSystemInterruptVector;
Bus->TranslateBusAddress = HalpTranslateSystemBusAddress;
//
// Build Isa/Eisa bus #0
//
HaliRegisterBusHandler (Eisa, // Bus Type
EisaConfiguration, // Config space type
0, // Internal bus #0
Internal, // Parent bus type
0, // Parent bus number
0, // No extension data
NULL, // No install handler
&Bus); // Bushandler return
Bus->GetBusData = HalpGetEisaData;
Bus->AdjustResourceList = HalpAdjustEisaResourceList;
HaliRegisterBusHandler (Isa, // Bus Type
-1, // No config space
0, // Internal bus #0
Eisa, // Parent bus type
0, // Parent bus number
0, // No extension data
NULL, // No install handler
&Bus); // Bushandler returne
Bus->GetBusData = HalpNoBusData;
Bus->AdjustResourceList = HalpAdjustIsaResourceList;
}
|