]> git.saurik.com Git - apple/boot.git/blob - i386/libsaio/legacy/PCI.h
boot-83.2.tar.gz
[apple/boot.git] / i386 / libsaio / legacy / PCI.h
1 /* Copyright (c) 1994-1996 NeXT Software, Inc. All rights reserved.
2 *
3 * PCI Configuration space structure and associated defines.
4 *
5 * HISTORY
6 *
7 * 13 May 1994 Dean Reece at NeXT
8 * Created.
9 *
10 */
11
12 /* The IOPCIConfigSpace structure can be used to decode the 256 byte
13 * configuration space presented by each PCI device. This structure
14 * is based on the PCI LOCAL BUS SPECIFICATION, rev 2.1, section 6.1
15 */
16
17 typedef struct _IOPCIConfigSpace {
18 unsigned short VendorID;
19 unsigned short DeviceID;
20 unsigned short Command;
21 unsigned short Status;
22 unsigned long RevisionID:8;
23 unsigned long ClassCode:24;
24 unsigned char CacheLineSize;
25 unsigned char LatencyTimer;
26 unsigned char HeaderType;
27 unsigned char BuiltInSelfTest;
28 unsigned long BaseAddress[6];
29 unsigned long CardbusCISpointer;
30 unsigned short SubVendorID;
31 unsigned short SubDeviceID;
32 unsigned long ROMBaseAddress;
33 unsigned long reserved3;
34 unsigned long reserved4;
35 unsigned char InterruptLine;
36 unsigned char InterruptPin;
37 unsigned char MinGrant;
38 unsigned char MaxLatency;
39 unsigned long VendorUnique[48];
40 } IOPCIConfigSpace;
41
42
43 /* PCI_DEFAULT_DATA is the value resulting from a read to a non-existent
44 * PCI device's configuration space.
45 */
46
47 #define PCI_DEFAULT_DATA 0xffffffff
48
49
50 /* PCI_INVALID_VENDOR_ID is a Vendor ID reserved by the PCI/SIG and is
51 * guaranteed not to be assigned to any vendor.
52 */
53
54 #define PCI_INVALID_VENDOR_ID 0xffff