Leaked source code of windows server 2003
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.
 
 
 
 
 
 

90 lines
1.6 KiB

/*++
Copyright (c) 1998 Microsoft Corporation
Module Name:
pcibios.h
Abstract:
This module contains support routines for the Pci Irq Routing.
Author:
Santosh Jodh (santoshj) 15-Sept-1998
Environment:
Kernel mode
--*/
#ifndef _PCIBIOS_
#define _PCIBIOS_
//
// Maximum number of interrupt pins possible on a single
// Pci device (CS offset 3D).
//
#define NUM_IRQ_PINS 4
//
// Structure definitions for Pci Irq Routing.
//
#pragma pack(1)
//
// Structure of information for one link.
//
typedef struct _PIN_INFO {
UCHAR Link;
USHORT InterruptMap;
} PIN_INFO, *PPIN_INFO;
//
// Structure of information for one slot entry.
//
typedef struct _SLOT_INFO {
UCHAR BusNumber;
UCHAR DeviceNumber;
PIN_INFO PinInfo[NUM_IRQ_PINS];
UCHAR SlotNumber;
UCHAR Reserved[1];
} SLOT_INFO, *PSLOT_INFO, far *FPSLOT_INFO;
//
// Structure of the $PIR table according to MS specification.
//
typedef struct _PCI_IRQ_ROUTING_TABLE {
ULONG Signature;
USHORT Version;
USHORT TableSize;
UCHAR RouterBus;
UCHAR RouterDevFunc;
USHORT ExclusiveIRQs;
ULONG CompatibleRouter;
ULONG MiniportData;
UCHAR Reserved0[11];
UCHAR Checksum;
} PCI_IRQ_ROUTING_TABLE, *PPCI_IRQ_ROUTING_TABLE, far *FPPCI_IRQ_ROUTING_TABLE;
//#pragma pack(pop)
//
// Calls PCI BIOS to get the IRQ Routing table.
//
FPPCI_IRQ_ROUTING_TABLE
HwGetRealModeIrqRoutingTable(
VOID
);
#endif // _PCIBIOS_