summaryrefslogtreecommitdiffstats
path: root/private/ntos/nthals/halr98mp/mips/r98busdt.h
diff options
context:
space:
mode:
Diffstat (limited to 'private/ntos/nthals/halr98mp/mips/r98busdt.h')
-rw-r--r--private/ntos/nthals/halr98mp/mips/r98busdt.h142
1 files changed, 142 insertions, 0 deletions
diff --git a/private/ntos/nthals/halr98mp/mips/r98busdt.h b/private/ntos/nthals/halr98mp/mips/r98busdt.h
new file mode 100644
index 000000000..0517105f5
--- /dev/null
+++ b/private/ntos/nthals/halr98mp/mips/r98busdt.h
@@ -0,0 +1,142 @@
+#ident "@(#) NEC r98busdat.h 1.2 94/10/19 22:15:10"
+/*++
+
+Module Name:
+
+ ixhwsup.c
+
+Abstract:
+
+ This module contains the IoXxx routines for the NT I/O system that
+ are hardware dependent. Were these routines not hardware dependent,
+ they would reside in the iosubs.c module.
+
+Author:
+
+
+Environment:
+
+ Kernel mode
+
+--*/
+/*++
+
+ Modification History
+
+ N- NEW
+ D- Only For Debug
+ B- Bug Fix
+
+ N001 ataka@oa2.kb.nec.co.jp Tue Oct 4 21:29:32 JST 1994
+ - (from r98busdat.h && halx86/i386/halp.h)
+
+--*/
+
+//
+// Bus handlers
+//
+
+typedef ULONG
+(*PGETSETBUSDATA)(
+ IN PVOID BusHandler,
+ IN PVOID RootHandler,
+ IN ULONG SlotNumber,
+ IN PVOID Buffer,
+ IN ULONG Offset,
+ IN ULONG Length
+ );
+
+typedef ULONG
+(*PGETINTERRUPTVECTOR)(
+ IN PVOID BusHandler,
+ IN PVOID RootHandler,
+ IN ULONG BusInterruptLevel,
+ IN ULONG BusInterruptVector,
+ OUT PKIRQL Irql,
+ OUT PKAFFINITY Affinity
+ );
+
+typedef BOOLEAN
+(*PTRANSLATEBUSADDRESS)(
+ IN PVOID BusHandler,
+ IN PVOID RootHandler,
+ IN PHYSICAL_ADDRESS BusAddress,
+ IN OUT PULONG AddressSpace,
+ OUT PPHYSICAL_ADDRESS TranslatedAddress
+ );
+
+typedef NTSTATUS
+(*PADJUSTRESOURCELIST)(
+ IN PVOID BusHandler,
+ IN PVOID RootHandler,
+ IN OUT PIO_RESOURCE_REQUIREMENTS_LIST *pResourceList
+ );
+
+typedef NTSTATUS
+(*PASSIGNSLOTRESOURCES)(
+ IN PVOID BusHandler,
+ IN PVOID RootHandler,
+ IN PUNICODE_STRING RegistryPath,
+ IN PUNICODE_STRING DriverClassName OPTIONAL,
+ IN PDRIVER_OBJECT DriverObject,
+ IN PDEVICE_OBJECT DeviceObject OPTIONAL,
+ IN ULONG SlotNumber,
+ IN OUT PCM_RESOURCE_LIST *AllocatedResources
+ );
+
+typedef struct tagBUSHANDLER {
+ struct tagBUSHANDLER *Next;
+
+ // this entry is for:
+ INTERFACE_TYPE InterfaceType;
+ BUS_DATA_TYPE ConfigurationType;
+ ULONG BusNumber;
+
+ // bus specific data:
+ struct tagBUSHANDLER *ParentHandler;
+ PVOID BusData;
+
+ // handlers for bus functions
+ PGETSETBUSDATA GetBusData;
+ PGETSETBUSDATA SetBusData;
+ PADJUSTRESOURCELIST AdjustResourceList;
+ PASSIGNSLOTRESOURCES AssignSlotResources;
+ PGETINTERRUPTVECTOR GetInterruptVector;
+ PTRANSLATEBUSADDRESS TranslateBusAddress;
+} BUSHANDLER, *PBUSHANDLER;
+
+#define HalpSetBusHandlerParent(c,p) (c)->ParentHandler = p;
+
+PBUSHANDLER HalpAllocateBusHandler (
+ IN INTERFACE_TYPE InterfaceType,
+ IN BUS_DATA_TYPE BusDataType,
+ IN ULONG BusNumber,
+ IN BUS_DATA_TYPE ParentBusDataType,
+ IN ULONG ParentBusNumber,
+ IN ULONG BusSpecificData
+ );
+#define HalpAllocateConfigSpace HalpAllocateBusHandler
+
+PBUSHANDLER HalpHandlerForBus (
+ IN INTERFACE_TYPE InterfaceType,
+ IN ULONG BusNumber
+ );
+
+
+NTSTATUS
+HalpAdjustResourceListLimits (
+ IN PBUSHANDLER BusHandler,
+ IN PBUSHANDLER RootHandler,
+ IN OUT PIO_RESOURCE_REQUIREMENTS_LIST *pResourceList,
+ IN ULONG MinimumMemoryAddress,
+ IN ULONG MaximumMemoryAddress,
+ IN ULONG MinimumPrefetchMemoryAddress,
+ IN ULONG MaximumPrefetchMemoryAddress,
+ IN BOOLEAN LimitedIOSupport,
+ IN ULONG MinimumPortAddress,
+ IN ULONG MaximumPortAddress,
+ IN PUCHAR IrqTable,
+ IN ULONG IrqTableLength,
+ IN ULONG MinimumDmaChannel,
+ IN ULONG MaximumDmaChannel
+ );