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

  1. /*++
  2. Copyright (c) 1998 Microsoft Corporation
  3. Module Name:
  4. pcibios.h
  5. Abstract:
  6. This module contains support routines for the Pci Irq Routing.
  7. Author:
  8. Santosh Jodh (santoshj) 15-Sept-1998
  9. Environment:
  10. Kernel mode
  11. --*/
  12. #ifndef _PCIBIOS_
  13. #define _PCIBIOS_
  14. //
  15. // Maximum number of interrupt pins possible on a single
  16. // Pci device (CS offset 3D).
  17. //
  18. #define NUM_IRQ_PINS 4
  19. //
  20. // Structure definitions for Pci Irq Routing.
  21. //
  22. #pragma pack(1)
  23. //
  24. // Structure of information for one link.
  25. //
  26. typedef struct _PIN_INFO {
  27. UCHAR Link;
  28. USHORT InterruptMap;
  29. } PIN_INFO, *PPIN_INFO;
  30. //
  31. // Structure of information for one slot entry.
  32. //
  33. typedef struct _SLOT_INFO {
  34. UCHAR BusNumber;
  35. UCHAR DeviceNumber;
  36. PIN_INFO PinInfo[NUM_IRQ_PINS];
  37. UCHAR SlotNumber;
  38. UCHAR Reserved[1];
  39. } SLOT_INFO, *PSLOT_INFO, far *FPSLOT_INFO;
  40. //
  41. // Structure of the $PIR table according to MS specification.
  42. //
  43. typedef struct _PCI_IRQ_ROUTING_TABLE {
  44. ULONG Signature;
  45. USHORT Version;
  46. USHORT TableSize;
  47. UCHAR RouterBus;
  48. UCHAR RouterDevFunc;
  49. USHORT ExclusiveIRQs;
  50. ULONG CompatibleRouter;
  51. ULONG MiniportData;
  52. UCHAR Reserved0[11];
  53. UCHAR Checksum;
  54. } PCI_IRQ_ROUTING_TABLE, *PPCI_IRQ_ROUTING_TABLE, far *FPPCI_IRQ_ROUTING_TABLE;
  55. //#pragma pack(pop)
  56. //
  57. // Calls PCI BIOS to get the IRQ Routing table.
  58. //
  59. FPPCI_IRQ_ROUTING_TABLE
  60. HwGetRealModeIrqRoutingTable(
  61. VOID
  62. );
  63. #endif // _PCIBIOS_