c9e3747ab7cb713b23b766a93b0e057e479b2cd7
[reactos.git] / reactos / hal / halx86 / include / hal.h
1 /*
2 *
3 */
4
5 #ifndef __INTERNAL_HAL_HAL_H
6 #define __INTERNAL_HAL_HAL_H
7
8 /*
9 * FUNCTION: Probes for a BIOS32 extension
10 */
11 VOID Hal_bios32_probe(VOID);
12
13 /*
14 * FUNCTION: Determines if a a bios32 service is present
15 */
16 BOOLEAN Hal_bios32_is_service_present(ULONG service);
17
18 /* display.c */
19 VOID FASTCALL HalInitializeDisplay (PLOADER_PARAMETER_BLOCK LoaderBlock);
20 VOID FASTCALL HalClearDisplay (UCHAR CharAttribute);
21
22 VOID HalpInitBusHandlers (VOID);
23
24 /* irql.c */
25 VOID HalpInitPICs(VOID);
26
27 /* udelay.c */
28 VOID HalpCalibrateStallExecution(VOID);
29
30 /* pci.c */
31 VOID HalpInitPciBus (VOID);
32
33 /* enum.c */
34 VOID HalpStartEnumerator (VOID);
35
36 /*
37 * ADAPTER_OBJECT - Track a busmaster DMA adapter and its associated resources
38 *
39 * NOTES:
40 * - I have not found any documentation on this; if you have any, please
41 * fix this struct definition
42 * - Some of this is right and some of this is wrong; many of these fields
43 * are unused at this point because X86 doesn't have map registers and
44 * currently that's all ROS supports
45 */
46 struct _ADAPTER_OBJECT {
47 INTERFACE_TYPE InterfaceType;
48 BOOLEAN Master;
49 int Channel;
50 PVOID PagePort;
51 PVOID CountPort;
52 PVOID OffsetPort;
53 KSPIN_LOCK SpinLock;
54 PVOID Buffer;
55 BOOLEAN Inuse;
56 ULONG AvailableMapRegisters;
57 PVOID MapRegisterBase;
58 ULONG AllocatedMapRegisters;
59 PWAIT_CONTEXT_BLOCK WaitContextBlock;
60 PKDEVICE_QUEUE DeviceQueue;
61 BOOLEAN UsesPhysicalMapRegisters;
62 };
63
64 /* sysinfo.c */
65 NTSTATUS STDCALL
66 HalpQuerySystemInformation(IN HAL_QUERY_INFORMATION_CLASS InformationClass,
67 IN ULONG BufferSize,
68 IN OUT PVOID Buffer,
69 OUT PULONG ReturnedLength);
70
71
72 /* Non-standard functions */
73 VOID STDCALL
74 HalReleaseDisplayOwnership();
75
76 BOOLEAN STDCALL
77 HalQueryDisplayOwnership();
78
79
80 #endif /* __INTERNAL_HAL_HAL_H */