pciConstants.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:2k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* pciConstants.h - Defines constants related to the PCI bus. */
  2. /* Copyright 2000 Wind River Systems, Inc. */
  3. /*
  4. Modification history
  5. --------------------
  6. 01c,18sep01,wef  merge from wrs.tor2_0.usb1_1-f for veloce
  7. 01b,05dec00,wef  removed some macros that were defined in pciConfigLib.h
  8. 01a,29may99,rcb  First.
  9. */
  10. #ifndef __INCpciConstantsh
  11. #define __INCpciConstantsh
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15. /* includes */
  16. #include "drv/pci/pciConfigLib.h"
  17. /* Constants */
  18. #ifndef PCI_MAX_BUS
  19. #define PCI_MAX_BUS 255     /* Max number of PCI buses in system */
  20. #endif /* PCI_MAX_BUS */
  21. #ifndef PCI_MAX_DEV
  22. #define PCI_MAX_DEV 32     /* Max number of PCI devices in system */
  23. #endif /* PCI_MAX_DEV */
  24. /* Constants related to PCI configuration */
  25. #define PCI_CFG_NUM_BASE_REG 6   /* Number of base address registers */
  26.     /* in PCI config. space for a device */
  27. /* The following PCI_CFG_ADDRESS_xxxx constants qualify the address in each
  28. of the PCI configuration base address registers. */
  29. #define PCI_CFG_BASE_IO     0x00000001 /* Mask indicates adrs is I/O adrs */
  30. #define PCI_CFG_BASE_MEM    0x00000000 /* Mask indicates adrs is mem adrs */
  31. #define PCI_CFG_IOBASE_MASK ~(0x3)
  32. #define PCI_CFG_MEMBASE_MASK ~(0xf)
  33. /*
  34.  * PCI_CFG_HEADER
  35.  *
  36.  * PCI_CFG_HEADER defines the invariant portion of a PCI devices configuration
  37.  * space.  
  38.  *
  39.  * NOTE: If 0-byte packing is in effect, this structure will match the PCI
  40.  * configuration header byte-for-byte.
  41.  */
  42. typedef struct pci_cfg_header
  43.     {
  44.     UINT16 vendorId; /* PCI-assigned vendor ID */
  45.     UINT16 deviceId; /* Vendor-assigned device ID */
  46.     UINT16 command; /* Config. cmd register */
  47.     UINT16 status; /* Cfg status register */
  48.     UINT8 revisionId; /* Revision ID */
  49.     UINT8 pgmIf; /* Programming interface */
  50.     UINT8 subClass; /* PCI Sub-class */
  51.     UINT8 pciClass; /* PCI Class code */
  52.     UINT8 cacheLineSize; /* Cache line size */
  53.     UINT8 latencyTimer;  /* Latency timer */
  54.     UINT8 headerType; /* Header type */
  55.     UINT8 bist;  /* BIST */
  56.     UINT32 baseReg [PCI_CFG_NUM_BASE_REG];  /* Base adrs registers */
  57.     UINT32 reserved [2];
  58.     UINT32 romBase; /* Expansion ROM base address */
  59.     UINT32 reserved1 [2];
  60.     UINT8 intLine; /* Interrupt line chosen by POST */
  61.     UINT8 intPin; /* HW int assignment (INTA = 1, etc) */
  62.     UINT8 minGrant; /* Minimum grant */
  63.     UINT8 maxLatency; /* Maximum latency */
  64.     } PCI_CFG_HEADER, *pPCI_CFG_HEADER;
  65. #ifdef __cplusplus
  66. }
  67. #endif
  68. #endif /* __INCpciConstantsh */
  69. /* End of file. */