Module wide .cvsignore for:
[reactos.git] / reactos / hal / halx86 / include / bus.h
1 /*
2
3 */
4
5 #ifndef __INTERNAL_HAL_BUS_H
6 #define __INTERNAL_HAL_BUS_H
7
8 struct _BUS_HANDLER;
9
10 typedef NTSTATUS (STDCALL *pAdjustResourceList) (
11 IN struct _BUS_HANDLER *BusHandler,
12 IN ULONG BusNumber,
13 IN OUT PCM_RESOURCE_LIST Resources
14 );
15
16 typedef NTSTATUS (STDCALL *pAssignSlotResources) (
17 IN struct _BUS_HANDLER *BusHandler,
18 IN ULONG BusNumber,
19 IN PUNICODE_STRING RegistryPath,
20 IN PUNICODE_STRING DriverClassName,
21 IN PDRIVER_OBJECT DriverObject,
22 IN PDEVICE_OBJECT DeviceObject,
23 IN ULONG SlotNumber,
24 IN OUT PCM_RESOURCE_LIST *AllocatedResources
25 );
26
27 typedef ULONG (STDCALL *pGetSetBusData) (
28 IN struct _BUS_HANDLER *BusHandler,
29 IN ULONG BusNumber,
30 IN ULONG SlotNumber,
31 OUT PVOID Buffer,
32 IN ULONG Offset,
33 IN ULONG Length
34 );
35
36 typedef ULONG (STDCALL *pGetInterruptVector) (
37 IN struct _BUS_HANDLER *BusHandler,
38 IN ULONG BusNumber,
39 IN ULONG BusInterruptLevel,
40 IN ULONG BusInterruptVector,
41 OUT PKIRQL Irql,
42 OUT PKAFFINITY Affinity
43 );
44
45 typedef ULONG (STDCALL *pTranslateBusAddress) (
46 IN struct _BUS_HANDLER *BusHandler,
47 IN ULONG BusNumber,
48 IN PHYSICAL_ADDRESS BusAddress,
49 IN OUT PULONG AddressSpace,
50 OUT PPHYSICAL_ADDRESS TranslatedAddress
51 );
52
53 typedef struct _BUS_HANDLER
54 {
55 LIST_ENTRY Entry;
56 INTERFACE_TYPE InterfaceType;
57 BUS_DATA_TYPE BusDataType;
58 ULONG BusNumber;
59 ULONG RefCount;
60
61 pGetSetBusData GetBusData;
62 pGetSetBusData SetBusData;
63 pAdjustResourceList AdjustResourceList;
64 pAssignSlotResources AssignSlotResources;
65 pGetInterruptVector GetInterruptVector;
66 pTranslateBusAddress TranslateBusAddress;
67 } BUS_HANDLER, *PBUS_HANDLER;
68
69
70 /* FUNCTIONS *****************************************************************/
71
72 /* bus.c */
73 PBUS_HANDLER
74 HalpAllocateBusHandler(INTERFACE_TYPE InterfaceType,
75 BUS_DATA_TYPE BusDataType,
76 ULONG BusNumber);
77
78 /* sysbus.h */
79 ULONG STDCALL
80 HalpGetSystemInterruptVector(PVOID BusHandler,
81 ULONG BusNumber,
82 ULONG BusInterruptLevel,
83 ULONG BusInterruptVector,
84 PKIRQL Irql,
85 PKAFFINITY Affinity);
86
87 BOOLEAN STDCALL
88 HalpTranslateSystemBusAddress(PBUS_HANDLER BusHandler,
89 ULONG BusNumber,
90 PHYSICAL_ADDRESS BusAddress,
91 PULONG AddressSpace,
92 PPHYSICAL_ADDRESS TranslatedAddress);
93
94 /* isa.c */
95 BOOLEAN STDCALL
96 HalpTranslateIsaBusAddress(PBUS_HANDLER BusHandler,
97 ULONG BusNumber,
98 PHYSICAL_ADDRESS BusAddress,
99 PULONG AddressSpace,
100 PPHYSICAL_ADDRESS TranslatedAddress);
101
102 /* time.c */
103 ULONG STDCALL
104 HalpGetCmosData(PBUS_HANDLER BusHandler,
105 ULONG BusNumber,
106 ULONG SlotNumber,
107 PVOID Buffer,
108 ULONG Offset,
109 ULONG Length);
110
111 ULONG STDCALL
112 HalpSetCmosData(PBUS_HANDLER BusHandler,
113 ULONG BusNumber,
114 ULONG SlotNumber,
115 PVOID Buffer,
116 ULONG Offset,
117 ULONG Length);
118
119 #endif /* __INTERNAL_HAL_BUS_H */
120
121 /* EOF */