Mac OS 9
PCI.h
Go to the documentation of this file.
1 
19 #ifndef __PCI__
20 #define __PCI__
21 
22 #ifndef __MACTYPES__
23 #include <MacTypes.h>
24 #endif
25 
26 #ifndef __NAMEREGISTRY__
27 #include <NameRegistry.h>
28 #endif
29 
30 #if PRAGMA_ONCE
31 #pragma once
32 #endif
33 
34 #ifdef __cplusplus
35 extern "C"
36 {
37 #endif
38 
39 #if PRAGMA_IMPORT
40 #pragma import on
41 #endif
42 
43 #if PRAGMA_STRUCT_ALIGN
44 #pragma options align = mac68k
45 #elif PRAGMA_STRUCT_PACKPUSH
46 #pragma pack(push, 2)
47 #elif PRAGMA_STRUCT_PACK
48 #pragma pack(2)
49 #endif
50 
52  enum
53  {
54  kPCIConfigVendorID = 0x00,
55  kPCIConfigDeviceID = 0x02,
56  kPCIConfigCommand = 0x04,
57  kPCIConfigStatus = 0x06,
58  kPCIConfigRevisionID = 0x08,
59  kPCIConfigClassCode = 0x09,
60  kPCIConfigCacheLineSize = 0x0C,
61  kPCIConfigLatencyTimer = 0x0D,
62  kPCIConfigHeaderType = 0x0E,
63  kPCIConfigBIST = 0x0F,
64  kPCIConfigBaseAddress0 = 0x10,
65  kPCIConfigBaseAddress1 = 0x14,
66  kPCIConfigBaseAddress2 = 0x18,
67  kPCIConfigBaseAddress3 = 0x1C,
68  kPCIConfigBaseAddress4 = 0x20,
69  kPCIConfigBaseAddress5 = 0x24,
70  kPCIConfigCardBusCISPtr = 0x28,
71  kPCIConfigSubSystemVendorID = 0x2C,
72  kPCIConfigSubSystemID = 0x2E,
73  kPCIConfigExpansionROMBase = 0x30,
74  kPCIConfigCapabilitiesPtr = 0x34,
75  kPCIConfigInterruptLine = 0x3C,
76  kPCIConfigInterruptPin = 0x3D,
77  kPCIConfigMinimumGrant = 0x3E,
78  kPCIConfigMaximumLatency = 0x3F
79  };
80 
82  enum
83  {
84  kPCICapabilityIDOffset = 0x00,
85  kPCINextCapabilityOffset = 0x01,
86  kPCIPowerManagementCapability = 0x01,
87  kPCIAGPCapability = 0x02
88  };
89 
92 #define kPCIAssignedAddressProperty "assigned-addresses"
93  enum
94  {
95  kPCIRelocatableSpace = 0x80,
96  kPCIPrefetchableSpace = 0x40,
97  kPCIAliasedSpace = 0x20,
98  kPCIAddressTypeCodeMask = 0x03,
99  kPCIConfigSpace = 0,
100  kPCIIOSpace = 1,
101  kPCI32BitMemorySpace = 2,
102  kPCI64BitMemorySpace = 3
103  };
104 
105  typedef UInt8 PCIAddressSpaceFlags;
106  enum
107  {
108  kPCIDeviceNumberMask = 0x1F,
109  kPCIFunctionNumberMask = 0x07
110  };
111 
112  typedef UInt8 PCIDeviceFunction;
113  typedef UInt8 PCIBusNumber;
114  typedef UInt8 PCIRegisterNumber;
116  {
117  PCIAddressSpaceFlags addressSpaceFlags;
118  PCIBusNumber busNumber;
119  PCIDeviceFunction deviceFunctionNumber;
120  PCIRegisterNumber registerNumber;
121  UnsignedWide address;
122  UnsignedWide size;
123  };
124  typedef struct PCIAssignedAddress PCIAssignedAddress;
126 #define GetPCIIsRelocatable(AssignedAddressPtr) \
127  ((AssignedAddressPtr)->addressSpaceFlags & kPCIRelocatableSpace)
128 #define GetPCIIsPrefetchable(AssignedAddressPtr) \
129  ((AssignedAddressPtr)->addressSpaceFlags & kPCIPrefetchableSpace)
130 #define GetPCIIsAliased(AssignedAddressPtr) \
131  ((AssignedAddressPtr)->addressSpaceFlags & kPCIAliasedSpace)
132 #define GetPCIAddressSpaceType(AssignedAddressPtr) \
133  ((AssignedAddressPtr)->addressSpaceFlags & kPCIAddressTypeCodeMask)
134 #define GetPCIBusNumber(AssignedAddressPtr) ((AssignedAddressPtr)->busNumber)
135 #define GetPCIDeviceNumber(AssignedAddressPtr) \
136  (((AssignedAddressPtr)->deviceFunctionNumber >> 3) & kPCIDeviceNumberMask)
137 #define GetPCIFunctionNumber(AssignedAddressPtr) \
138  ((AssignedAddressPtr)->deviceFunctionNumber & kPCIFunctionNumberMask)
139 #define GetPCIRegisterNumber(AssignedAddressPtr) \
140  ((AssignedAddressPtr)->registerNumber)
141 
142 #if CALL_NOT_IN_CARBON
151 #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
152 #pragma parameter __D0 EndianSwap16Bit(__D0)
153 #endif
154  UInt16
155  EndianSwap16Bit(UInt16 data16);
156 
165 #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
166 #pragma parameter __D0 EndianSwap32Bit(__D0)
167 #endif
168  UInt32
169  EndianSwap32Bit(UInt32 data32);
170 
171 #endif
173 #if CALL_NOT_IN_CARBON
182  OSErr
183  ExpMgrConfigReadByte(RegEntryIDPtr node, LogicalAddress configAddr,
184  UInt8 *valuePtr);
185 
194  OSErr
195  ExpMgrConfigReadWord(RegEntryIDPtr node, LogicalAddress configAddr,
196  UInt16 *valuePtr);
197 
206  OSErr
207  ExpMgrConfigReadLong(RegEntryIDPtr node, LogicalAddress configAddr,
208  UInt32 *valuePtr);
209 
218  OSErr
219  ExpMgrConfigWriteByte(RegEntryIDPtr node, LogicalAddress configAddr,
220  UInt8 value);
221 
230  OSErr
231  ExpMgrConfigWriteWord(RegEntryIDPtr node, LogicalAddress configAddr,
232  UInt16 value);
233 
242  OSErr
243  ExpMgrConfigWriteLong(RegEntryIDPtr node, LogicalAddress configAddr,
244  UInt32 value);
245 
254  OSErr
255  ExpMgrIOReadByte(RegEntryIDPtr node, LogicalAddress ioAddr, UInt8 *valuePtr);
256 
265  OSErr
266  ExpMgrIOReadWord(RegEntryIDPtr node, LogicalAddress ioAddr, UInt16 *valuePtr);
267 
276  OSErr
277  ExpMgrIOReadLong(RegEntryIDPtr node, LogicalAddress ioAddr, UInt32 *valuePtr);
278 
287  OSErr
288  ExpMgrIOWriteByte(RegEntryIDPtr node, LogicalAddress ioAddr, UInt8 value);
289 
298  OSErr
299  ExpMgrIOWriteWord(RegEntryIDPtr node, LogicalAddress ioAddr, UInt16 value);
300 
309  OSErr
310  ExpMgrIOWriteLong(RegEntryIDPtr node, LogicalAddress ioAddr, UInt32 value);
311 
320  OSErr
322 
331  OSErr
333 
342  OSErr
344 
353  OSErr
355 
364  OSErr
366 
367 #endif
369 #if PRAGMA_STRUCT_ALIGN
370 #pragma options align = reset
371 #elif PRAGMA_STRUCT_PACKPUSH
372 #pragma pack(pop)
373 #elif PRAGMA_STRUCT_PACK
374 #pragma pack()
375 #endif
376 
377 #ifdef PRAGMA_IMPORT_OFF
378 #pragma import off
379 #elif PRAGMA_IMPORT
380 #pragma import reset
381 #endif
382 
383 #ifdef __cplusplus
384 }
385 #endif
386 
387 #endif
Basic Macintosh data types.
NameRegistry Interfaces.
OSErr ExpMgrInterruptAcknowledgeReadByte(RegEntryIDPtr entry, UInt8 *valuePtr)
UInt16 EndianSwap16Bit(UInt16 data16)
UInt32 EndianSwap32Bit(UInt32 data32)
OSErr ExpMgrIOWriteLong(RegEntryIDPtr node, LogicalAddress ioAddr, UInt32 value)
OSErr ExpMgrSpecialCycleWriteLong(RegEntryIDPtr entry, UInt32 value)
OSErr ExpMgrConfigWriteWord(RegEntryIDPtr node, LogicalAddress configAddr, UInt16 value)
OSErr ExpMgrConfigWriteLong(RegEntryIDPtr node, LogicalAddress configAddr, UInt32 value)
OSErr ExpMgrIOWriteByte(RegEntryIDPtr node, LogicalAddress ioAddr, UInt8 value)
OSErr ExpMgrConfigReadWord(RegEntryIDPtr node, LogicalAddress configAddr, UInt16 *valuePtr)
OSErr ExpMgrInterruptAcknowledgeReadLong(RegEntryIDPtr entry, UInt32 *valuePtr)
OSErr ExpMgrConfigReadByte(RegEntryIDPtr node, LogicalAddress configAddr, UInt8 *valuePtr)
OSErr ExpMgrConfigWriteByte(RegEntryIDPtr node, LogicalAddress configAddr, UInt8 value)
OSErr ExpMgrSpecialCycleBroadcastLong(UInt32 value)
OSErr ExpMgrIOReadByte(RegEntryIDPtr node, LogicalAddress ioAddr, UInt8 *valuePtr)
OSErr ExpMgrIOReadWord(RegEntryIDPtr node, LogicalAddress ioAddr, UInt16 *valuePtr)
OSErr ExpMgrInterruptAcknowledgeReadWord(RegEntryIDPtr entry, UInt16 *valuePtr)
OSErr ExpMgrIOWriteWord(RegEntryIDPtr node, LogicalAddress ioAddr, UInt16 value)
OSErr ExpMgrIOReadLong(RegEntryIDPtr node, LogicalAddress ioAddr, UInt32 *valuePtr)
OSErr ExpMgrConfigReadLong(RegEntryIDPtr node, LogicalAddress configAddr, UInt32 *valuePtr)
Definition: PCI.h:116
Definition: NameRegistry.h:62
Definition: MacTypes.h:110