mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
142 lines
2.6 KiB
142 lines
2.6 KiB
/*
|
|
* Copyright (c) 1995 FirePower Systems, Inc.
|
|
* DO NOT DISTRIBUTE without permission
|
|
*
|
|
* $RCSfile: fppcisup.h $
|
|
* $Revision: 1.2 $
|
|
* $Date: 1996/01/11 08:38:36 $
|
|
* $Locker: $
|
|
*
|
|
*/
|
|
|
|
#define TBS " "
|
|
|
|
ULONG
|
|
HalpStatSlot(
|
|
IN PPCI_COMMON_CONFIG StatData,
|
|
IN PBUS_HANDLER ThisBus,
|
|
IN PCI_SLOT_NUMBER SlotNumber,
|
|
OUT PSUPPORTED_RANGES pRanges
|
|
);
|
|
|
|
ULONG
|
|
HalpAdjustBridge(
|
|
PBUS_HANDLER ChildBus,
|
|
PPCI_COMMON_CONFIG PrivData,
|
|
PCM_RESOURCE_LIST CmList
|
|
);
|
|
|
|
ULONG
|
|
HalpConfigurePcmciaBridge(
|
|
IN ULONG ParentBusNo
|
|
);
|
|
|
|
ULONG
|
|
HalpInitPciBridgeConfig(
|
|
IN ULONG ParentBusNo,
|
|
IN OUT PPCI_COMMON_CONFIG,
|
|
IN OUT PBUS_HANDLER ParentBus
|
|
);
|
|
|
|
VOID
|
|
HalpInitIoBuses (
|
|
VOID
|
|
);
|
|
|
|
VOID HalpPCISynchronizeBridged (
|
|
IN PBUS_HANDLER BusHandler,
|
|
IN PCI_SLOT_NUMBER Slot,
|
|
IN PKIRQL Irql,
|
|
IN PVOID State
|
|
);
|
|
|
|
VOID HalpPCIReleaseSynchronzationBridged (
|
|
IN PBUS_HANDLER BusHandler,
|
|
IN KIRQL Irql
|
|
);
|
|
|
|
ULONG HalpPCIReadUlongBridged (
|
|
IN PPCIPBUSDATA BusData,
|
|
IN PVOID State,
|
|
IN PUCHAR Buffer,
|
|
IN ULONG Offset
|
|
);
|
|
|
|
ULONG HalpPCIReadUcharBridged (
|
|
IN PPCIPBUSDATA BusData,
|
|
IN PVOID State,
|
|
IN PUCHAR Buffer,
|
|
IN ULONG Offset
|
|
);
|
|
|
|
ULONG HalpPCIReadUshortBridged (
|
|
IN PPCIPBUSDATA BusData,
|
|
IN PVOID State,
|
|
IN PUCHAR Buffer,
|
|
IN ULONG Offset
|
|
);
|
|
|
|
ULONG HalpPCIWriteUlongBridged (
|
|
IN PPCIPBUSDATA BusData,
|
|
IN PVOID State,
|
|
IN PUCHAR Buffer,
|
|
IN ULONG Offset
|
|
);
|
|
|
|
ULONG HalpPCIWriteUcharBridged (
|
|
IN PPCIPBUSDATA BusData,
|
|
IN PVOID State,
|
|
IN PUCHAR Buffer,
|
|
IN ULONG Offset
|
|
);
|
|
|
|
ULONG HalpPCIWriteUshortBridged (
|
|
IN PPCIPBUSDATA BusData,
|
|
IN PVOID State,
|
|
IN PUCHAR Buffer,
|
|
IN ULONG Offset
|
|
);
|
|
|
|
ULONG HalpGetPciInterruptSlot(
|
|
IN PBUS_HANDLER BusHandler,
|
|
IN PCI_SLOT_NUMBER PciSlot
|
|
);
|
|
|
|
PCI_CONFIG_HANDLER PCIConfigHandlerBridged = {
|
|
HalpPCISynchronizeBridged,
|
|
HalpPCIReleaseSynchronzationBridged,
|
|
{
|
|
HalpPCIReadUlongBridged, // 0
|
|
HalpPCIReadUcharBridged, // 1
|
|
HalpPCIReadUshortBridged // 2
|
|
},
|
|
{
|
|
HalpPCIWriteUlongBridged, // 0
|
|
HalpPCIWriteUcharBridged, // 1
|
|
HalpPCIWriteUshortBridged // 2
|
|
}
|
|
};
|
|
|
|
|
|
typedef struct ABusInfo {
|
|
struct ABusInfo *ParentBus;
|
|
struct ABusInfo *ChildBus;
|
|
struct ABusInfo *PeerBus;
|
|
ULONG PeerCount;
|
|
ULONG ChildCount;
|
|
} BUSINFO, PBUSINFO;
|
|
|
|
extern KSPIN_LOCK HalpPCIConfigLock;
|
|
|
|
//
|
|
// scan within a bus for devices, accumulating info. Keep track of
|
|
// devices on current bus, how deep you are, who the parents are.
|
|
//
|
|
ULONG HalpScanPciBus(ULONG HwType, ULONG BusNo, PBUS_HANDLER ParentBus);
|
|
|
|
|
|
//
|
|
// Once a bus is fully known, then setup all the devs on the bus:
|
|
//
|
|
ULONG HalpInitPciBus(ULONG BusNo, PULONG ParentBus, PULONG CurrentBus);
|
|
|