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 */