5 #ifndef __INTERNAL_HAL_BUS_H
6 #define __INTERNAL_HAL_BUS_H
9 typedef NTSTATUS STDCALL
10 (*pAdjustResourceList
)(IN PBUS_HANDLER BusHandler
,
12 IN OUT PCM_RESOURCE_LIST Resources
);
14 typedef NTSTATUS STDCALL
15 (*pAssignSlotResources
)(IN PBUS_HANDLER BusHandler
,
17 IN PUNICODE_STRING RegistryPath
,
18 IN PUNICODE_STRING DriverClassName
,
19 IN PDRIVER_OBJECT DriverObject
,
20 IN PDEVICE_OBJECT DeviceObject
,
22 IN OUT PCM_RESOURCE_LIST
*AllocatedResources
);
25 (*pGetSetBusData
)(IN PBUS_HANDLER BusHandler
,
33 (*pGetInterruptVector
)(IN PBUS_HANDLER BusHandler
,
35 IN ULONG BusInterruptLevel
,
36 IN ULONG BusInterruptVector
,
38 OUT PKAFFINITY Affinity
);
41 (*pTranslateBusAddress
)(IN PBUS_HANDLER BusHandler
,
43 IN PHYSICAL_ADDRESS BusAddress
,
44 IN OUT PULONG AddressSpace
,
45 OUT PPHYSICAL_ADDRESS TranslatedAddress
);
47 typedef struct _BUS_HANDLER
50 INTERFACE_TYPE InterfaceType
;
51 BUS_DATA_TYPE BusDataType
;
55 pGetSetBusData GetBusData
;
56 pGetSetBusData SetBusData
;
57 pAdjustResourceList AdjustResourceList
;
58 pAssignSlotResources AssignSlotResources
;
59 pGetInterruptVector GetInterruptVector
;
60 pTranslateBusAddress TranslateBusAddress
;
64 /* FUNCTIONS *****************************************************************/
68 HalpAllocateBusHandler(INTERFACE_TYPE InterfaceType
,
69 BUS_DATA_TYPE BusDataType
,
74 HalpGetSystemInterruptVector(PVOID BusHandler
,
76 ULONG BusInterruptLevel
,
77 ULONG BusInterruptVector
,
82 HalpTranslateSystemBusAddress(PBUS_HANDLER BusHandler
,
84 PHYSICAL_ADDRESS BusAddress
,
86 PPHYSICAL_ADDRESS TranslatedAddress
);
90 HalpGetIsaInterruptVector(PVOID BusHandler
,
92 ULONG BusInterruptLevel
,
93 ULONG BusInterruptVector
,
98 HalpTranslateIsaBusAddress(PBUS_HANDLER BusHandler
,
100 PHYSICAL_ADDRESS BusAddress
,
102 PPHYSICAL_ADDRESS TranslatedAddress
);
106 HalpGetCmosData(PBUS_HANDLER BusHandler
,
114 HalpSetCmosData(PBUS_HANDLER BusHandler
,
123 HalpGetMicroChannelData(PBUS_HANDLER BusHandler
,
130 #endif /* __INTERNAL_HAL_BUS_H */