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) 1991 Microsoft Corporation
Module Name:
ixdat.c
Abstract:
Declares various data which is initialize data, or pagable data.
Author:
Environment:
Kernel mode only.
Revision History:
--*/
/*++
Revision History:
--*/
#include "halp.h"
#ifdef ALLOC_DATA_PRAGMA
#pragma data_seg("INIT")
#endif
//
// The following data is only valid during system initialiation
// and the memory will be re-claimed by the system afterwards
//
ADDRESS_USAGE HalpDefaultPcIoSpace = {
NULL, CmResourceTypePort, InternalUsage,
{
EISA_CONTROL_PHYSICAL_BASE+0x000, 0x10, // ISA DMA
EISA_CONTROL_PHYSICAL_BASE+0x0C0, 0x10, // ISA DMA
EISA_CONTROL_PHYSICAL_BASE+0x080, 0x10, // DMA
EISA_CONTROL_PHYSICAL_BASE+0x020, 0x2, // PIC
EISA_CONTROL_PHYSICAL_BASE+0x0A0, 0x2, // Cascaded PIC
EISA_CONTROL_PHYSICAL_BASE+0x040, 0x4, // Timer1, Referesh, Speaker, Control Word
EISA_CONTROL_PHYSICAL_BASE+0x048, 0x4, // Timer2, Failsafe
EISA_CONTROL_PHYSICAL_BASE+0x061, 0x1, // NMI (system control port B)
EISA_CONTROL_PHYSICAL_BASE+0x092, 0x1, // system control port A
EISA_CONTROL_PHYSICAL_BASE+0x070, 0x2, // Cmos/NMI enable
EISA_CONTROL_PHYSICAL_BASE+0x0F0, 0x10, // coprocessor ports
0,0
}
};
ADDRESS_USAGE HalpEisaIoSpace = {
NULL, CmResourceTypePort, InternalUsage,
{
EISA_CONTROL_PHYSICAL_BASE+0x0D0, 0x10, // DMA
EISA_CONTROL_PHYSICAL_BASE+0x400, 0x10, // DMA
EISA_CONTROL_PHYSICAL_BASE+0x480, 0x10, // DMA
EISA_CONTROL_PHYSICAL_BASE+0x4C2, 0xE, // DMA
EISA_CONTROL_PHYSICAL_BASE+0x4D4, 0x2C, // DMA
EISA_CONTROL_PHYSICAL_BASE+0x461, 0x2, // Extended NMI
EISA_CONTROL_PHYSICAL_BASE+0x464, 0x2, // Last Eisa Bus Muster granted
EISA_CONTROL_PHYSICAL_BASE+0x4D0, 0x2, // edge/level control registers
EISA_CONTROL_PHYSICAL_BASE+0xC84, 0x1, // System board enable
0, 0
}
};
#define R98_MAPREGISTER_BASE 100
ADDRESS_USAGE HalpMapRegisterMemorySpace = {
NULL, CmResourceTypeMemory, InternalUsage,
{
R98_MAPREGISTER_BASE, (USHORT)(DMA_TRANSLATION_LIMIT/(sizeof(TRANSLATION_ENTRY))*PAGE_SIZE), // for Map Register Area CMP001
0, 0
}
};
//
// from ixdat.c
//
UCHAR HalpSzBreak[] = "BREAK";
UCHAR HalpSzPciLock[] = "PCILOCK";
//
// From usage.c
//
ADDRESS_USAGE *HalpAddressUsageList;
//
// Misc hal stuff in the registry
//
WCHAR rgzHalClassName[] = L"Hardware Abstraction Layer";
//
// From ixpcibus.c
//
WCHAR rgzMultiFunctionAdapter[] = L"\\Registry\\Machine\\Hardware\\Description\\System\\MultifunctionAdapter";
WCHAR rgzConfigurationData[] = L"Configuration Data";
WCHAR rgzIdentifier[] = L"Identifier";
WCHAR rgzPCIIndetifier[] = L"PCI";
WCHAR rgzReservedResources[] = L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\SystemResources\\ReservedResources"; // A002
#ifdef ALLOC_DATA_PRAGMA
#pragma data_seg()
#endif
//
// IDT vector usage info
//
//
#if defined(MIPS)
IDTUsage HalpIDTUsage[MAXIMUM_VECTOR]; // Size of PCR->InterruptRoutine[]
#else
IDTUsage HalpIDTUsage[MAXIMUM_IDTVECTOR];
#endif
|