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.
|
|
/*++
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_
|