Annotation of kernel/bsd/dev/ppc/drvUSBCMD/pci.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
                      3:  *
                      4:  * @APPLE_LICENSE_HEADER_START@
                      5:  * 
                      6:  * Portions Copyright (c) 1999 Apple Computer, Inc.  All Rights
                      7:  * Reserved.  This file contains Original Code and/or Modifications of
                      8:  * Original Code as defined in and that are subject to the Apple Public
                      9:  * Source License Version 1.1 (the "License").  You may not use this file
                     10:  * except in compliance with the License.  Please obtain a copy of the
                     11:  * License at http://www.apple.com/publicsource and read it before using
                     12:  * this file.
                     13:  * 
                     14:  * The Original Code and all software distributed under the License are
                     15:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
                     16:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
                     17:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
                     18:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
                     19:  * License for the specific language governing rights and limitations
                     20:  * under the License.
                     21:  * 
                     22:  * @APPLE_LICENSE_HEADER_END@
                     23:  */
                     24: 
                     25: /*
                     26:        File:           PCI.h
                     27:  
                     28:        Contains:       PCI Bus Interfaces.
                     29:  
                     30:        Version:        PowerSurge 1.0.2
                     31:  
                     32:        DRI:            Matthew Nelson
                     33:  
                     34:        Copyright:      � 1993-1998 by Apple Computer, Inc., all rights reserved.
                     35:  
                     36:        Warning:        *** APPLE INTERNAL USE ONLY ***
                     37:                                This file may contain unreleased API's
                     38:  
                     39:        BuildInfo:      Built by:                       Naga Pappireddi
                     40:                                With Interfacer:        3.0d9 (PowerPC native)
                     41:                                From:                           PCI.i
                     42:                                        Revision:               22
                     43:                                        Dated:                  1/22/98
                     44:                                        Last change by: ngk
                     45:                                        Last comment:   Change Types.i to MacTypes.i
                     46:  
                     47:        Bugs:           Report bugs to Radar component "System Interfaces", "Latest"
                     48:                                List the version information (from above) in the Problem Description.
                     49:  
                     50: */
                     51: #ifndef __PCI__
                     52: #define __PCI__
                     53: 
                     54: #ifndef __MACTYPES__
                     55: //#include <MacTypes.h>
                     56: #endif
                     57: #ifndef __NAMEREGISTRY__
                     58: //#include <NameRegistry.h>
                     59: #endif
                     60: 
                     61: 
                     62: 
                     63: #if PRAGMA_ONCE
                     64: #pragma once
                     65: #endif
                     66: 
                     67: #ifdef __cplusplus
                     68: extern "C" {
                     69: #endif
                     70: 
                     71: #if PRAGMA_IMPORT
                     72: #pragma import on
                     73: #endif
                     74: 
                     75: #if PRAGMA_STRUCT_ALIGN
                     76:        #pragma options align=mac68k
                     77: #elif PRAGMA_STRUCT_PACKPUSH
                     78:        #pragma pack(push, 2)
                     79: #elif PRAGMA_STRUCT_PACK
                     80:        #pragma pack(2)
                     81: #endif
                     82: 
                     83: 
                     84:                #if TARGET_CPU_68K && defined(IGNORE68KTRAPGLUE)
                     85:                        #undef ONEWORDINLINE
                     86:                        #undef TWOWORDINLINE
                     87:                        #undef THREEWORDINLINE
                     88:                        #undef FOURWORDINLINE
                     89:                        #undef FIVEWORDINLINE
                     90:                        #undef SIXWORDINLINE
                     91:                        #undef SEVENWORDINLINE
                     92:                        #undef EIGHTWORDINLINE
                     93:                        #undef NINEWORDINLINE
                     94:                        #undef TENWORDINLINE
                     95:                        #undef ELEVENWORDINLINE
                     96:                        #undef TWELVEWORDINLINE
                     97:                        
                     98:                        #define ONEWORDINLINE(w1)
                     99:                        #define TWOWORDINLINE(w1,w2)
                    100:                        #define THREEWORDINLINE(w1,w2,w3)
                    101:                        #define FOURWORDINLINE(w1,w2,w3,w4)
                    102:                        #define FIVEWORDINLINE(w1,w2,w3,w4,w5)
                    103:                        #define SIXWORDINLINE(w1,w2,w3,w4,w5,w6)
                    104:                        #define SEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7)
                    105:                        #define EIGHTWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8)
                    106:                        #define NINEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9)
                    107:                        #define TENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10)
                    108:                        #define ELEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11)
                    109:                        #define TWELVEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12)
                    110:                #endif
                    111:         
                    112: /* Types and structures for accessing the PCI Assigned-Address property.*/
                    113: 
                    114: #define kPCIAssignedAddressProperty "assigned-addresses"
                    115: 
                    116: enum {
                    117:        kPCIRelocatableSpace            = 0x80,
                    118:        kPCIPrefetchableSpace           = 0x40,
                    119:        kPCIAliasedSpace                        = 0x20,
                    120:        kPCIAddressTypeCodeMask         = 0x03,
                    121:        kPCIConfigSpace                         = 0,
                    122:        kPCIIOSpace                                     = 1,
                    123:        kPCI32BitMemorySpace            = 2,
                    124:        kPCI64BitMemorySpace            = 3
                    125: };
                    126: 
                    127: typedef UInt8                                                  PCIAddressSpaceFlags;
                    128: 
                    129: enum {
                    130:        kPCIDeviceNumberMask            = 0x1F,
                    131:        kPCIFunctionNumberMask          = 0x07
                    132: };
                    133: 
                    134: typedef UInt8                                                  PCIDeviceFunction;
                    135: typedef UInt8                                                  PCIBusNumber;
                    136: typedef UInt8                                                  PCIRegisterNumber;
                    137: 
                    138: struct PCIAssignedAddress {
                    139:        PCIAddressSpaceFlags                    addressSpaceFlags;
                    140:        PCIBusNumber                                    busNumber;
                    141:        PCIDeviceFunction                               deviceFunctionNumber;
                    142:        PCIRegisterNumber                               registerNumber;
                    143:        UnsignedWide                                    address;
                    144:        UnsignedWide                                    size;
                    145: };
                    146: typedef struct PCIAssignedAddress              PCIAssignedAddress;
                    147: typedef PCIAssignedAddress *                   PCIAssignedAddressPtr;
                    148: #define GetPCIIsRelocatable( AssignedAddressPtr )              ((AssignedAddressPtr)->addressSpaceFlags & kPCIRelocatableSpace)
                    149: #define GetPCIIsPrefetchable( AssignedAddressPtr )             ((AssignedAddressPtr)->addressSpaceFlags & kPCIPrefetchableSpace)
                    150: #define GetPCIIsAliased( AssignedAddressPtr )                  ((AssignedAddressPtr)->addressSpaceFlags & kPCIAliasedSpace)
                    151: #define GetPCIAddressSpaceType( AssignedAddressPtr )   ((AssignedAddressPtr)->addressSpaceFlags & kPCIAddressTypeCodeMask)
                    152: #define GetPCIBusNumber( AssignedAddressPtr )                  ((AssignedAddressPtr)->busNumber)
                    153: #define GetPCIDeviceNumber( AssignedAddressPtr )               (((AssignedAddressPtr)->deviceFunctionNumber >> 3) & kPCIDeviceNumberMask)
                    154: #define GetPCIFunctionNumber( AssignedAddressPtr )             ((AssignedAddressPtr)->deviceFunctionNumber & kPCIFunctionNumberMask)
                    155: #define GetPCIRegisterNumber( AssignedAddressPtr )             ((AssignedAddressPtr)->registerNumber)
                    156: 
                    157:                                                                                                                                                                                        #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
                    158:                                                                                                                                                                                        #pragma parameter __D0 EndianSwap16Bit(__D0)
                    159:                                                                                                                                                                                        #endif
                    160: EXTERN_API( UInt16 )
                    161: EndianSwap16Bit                                        (UInt16                                 data16)                                                         ONEWORDINLINE(0xE158);
                    162: 
                    163:                                                                                                                                                                                        #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
                    164:                                                                                                                                                                                        #pragma parameter __D0 EndianSwap32Bit(__D0)
                    165:                                                                                                                                                                                        #endif
                    166: EXTERN_API( UInt32 )
                    167: EndianSwap32Bit                                        (UInt32                                 data32)                                                         THREEWORDINLINE(0xE158, 0x4840, 0xE158);
                    168: 
                    169: EXTERN_API( OSErr )
                    170: ExpMgrConfigReadByte                   (RegEntryIDPtr                  node,
                    171:                                                                 LogicalAddress                 configAddr,
                    172:                                                                 UInt8 *                                valuePtr)                                                       THREEWORDINLINE(0x303C, 0x0620, 0xAAF3);
                    173: 
                    174: EXTERN_API( OSErr )
                    175: ExpMgrConfigReadWord                   (RegEntryIDPtr                  node,
                    176:                                                                 LogicalAddress                 configAddr,
                    177:                                                                 UInt16 *                               valuePtr)                                                       THREEWORDINLINE(0x303C, 0x0621, 0xAAF3);
                    178: 
                    179: EXTERN_API( OSErr )
                    180: ExpMgrConfigReadLong                   (RegEntryIDPtr                  node,
                    181:                                                                 LogicalAddress                 configAddr,
                    182:                                                                 UInt32 *                               valuePtr)                                                       THREEWORDINLINE(0x303C, 0x0622, 0xAAF3);
                    183: 
                    184: EXTERN_API( OSErr )
                    185: ExpMgrConfigWriteByte                  (RegEntryIDPtr                  node,
                    186:                                                                 LogicalAddress                 configAddr,
                    187:                                                                 UInt8                                  value)                                                          THREEWORDINLINE(0x303C, 0x0523, 0xAAF3);
                    188: 
                    189: EXTERN_API( OSErr )
                    190: ExpMgrConfigWriteWord                  (RegEntryIDPtr                  node,
                    191:                                                                 LogicalAddress                 configAddr,
                    192:                                                                 UInt16                                 value)                                                          THREEWORDINLINE(0x303C, 0x0524, 0xAAF3);
                    193: 
                    194: EXTERN_API( OSErr )
                    195: ExpMgrConfigWriteLong                  (RegEntryIDPtr                  node,
                    196:                                                                 LogicalAddress                 configAddr,
                    197:                                                                 UInt32                                 value)                                                          THREEWORDINLINE(0x303C, 0x0625, 0xAAF3);
                    198: 
                    199: EXTERN_API( OSErr )
                    200: ExpMgrIOReadByte                               (RegEntryIDPtr                  node,
                    201:                                                                 LogicalAddress                 ioAddr,
                    202:                                                                 UInt8 *                                valuePtr)                                                       THREEWORDINLINE(0x303C, 0x0626, 0xAAF3);
                    203: 
                    204: EXTERN_API( OSErr )
                    205: ExpMgrIOReadWord                               (RegEntryIDPtr                  node,
                    206:                                                                 LogicalAddress                 ioAddr,
                    207:                                                                 UInt16 *                               valuePtr)                                                       THREEWORDINLINE(0x303C, 0x0627, 0xAAF3);
                    208: 
                    209: EXTERN_API( OSErr )
                    210: ExpMgrIOReadLong                               (RegEntryIDPtr                  node,
                    211:                                                                 LogicalAddress                 ioAddr,
                    212:                                                                 UInt32 *                               valuePtr)                                                       THREEWORDINLINE(0x303C, 0x0628, 0xAAF3);
                    213: 
                    214: EXTERN_API( OSErr )
                    215: ExpMgrIOWriteByte                              (RegEntryIDPtr                  node,
                    216:                                                                 LogicalAddress                 ioAddr,
                    217:                                                                 UInt8                                  value)                                                          THREEWORDINLINE(0x303C, 0x0529, 0xAAF3);
                    218: 
                    219: EXTERN_API( OSErr )
                    220: ExpMgrIOWriteWord                              (RegEntryIDPtr                  node,
                    221:                                                                 LogicalAddress                 ioAddr,
                    222:                                                                 UInt16                                 value)                                                          THREEWORDINLINE(0x303C, 0x052A, 0xAAF3);
                    223: 
                    224: EXTERN_API( OSErr )
                    225: ExpMgrIOWriteLong                              (RegEntryIDPtr                  node,
                    226:                                                                 LogicalAddress                 ioAddr,
                    227:                                                                 UInt32                                 value)                                                          THREEWORDINLINE(0x303C, 0x062B, 0xAAF3);
                    228: 
                    229: EXTERN_API( OSErr )
                    230: ExpMgrInterruptAcknowledgeReadByte (RegEntryIDPtr              entry,
                    231:                                                                 UInt8 *                                valuePtr)                                                       THREEWORDINLINE(0x303C, 0x0411, 0xAAF3);
                    232: 
                    233: EXTERN_API( OSErr )
                    234: ExpMgrInterruptAcknowledgeReadWord (RegEntryIDPtr              entry,
                    235:                                                                 UInt16 *                               valuePtr)                                                       THREEWORDINLINE(0x303C, 0x0412, 0xAAF3);
                    236: 
                    237: EXTERN_API( OSErr )
                    238: ExpMgrInterruptAcknowledgeReadLong (RegEntryIDPtr              entry,
                    239:                                                                 UInt32 *                               valuePtr)                                                       THREEWORDINLINE(0x303C, 0x0413, 0xAAF3);
                    240: 
                    241: EXTERN_API( OSErr )
                    242: ExpMgrSpecialCycleWriteLong            (RegEntryIDPtr                  entry,
                    243:                                                                 UInt32                                 value)                                                          THREEWORDINLINE(0x303C, 0x0419, 0xAAF3);
                    244: 
                    245: EXTERN_API( OSErr )
                    246: ExpMgrSpecialCycleBroadcastLong        (UInt32                                 value)                                                          THREEWORDINLINE(0x303C, 0x021A, 0xAAF3);
                    247: 
                    248: 
                    249:                #if TARGET_CPU_68K && defined(IGNORE68KTRAPGLUE)
                    250:                        #if TARGET_OS_MAC && !TARGET_RT_MAC_CFM
                    251:                                #undef ONEWORDINLINE
                    252:                                #undef TWOWORDINLINE
                    253:                                #undef THREEWORDINLINE
                    254:                                #undef FOURWORDINLINE
                    255:                                #undef FIVEWORDINLINE
                    256:                                #undef SIXWORDINLINE
                    257:                                #undef SEVENWORDINLINE
                    258:                                #undef EIGHTWORDINLINE
                    259:                                #undef NINEWORDINLINE
                    260:                                #undef TENWORDINLINE
                    261:                                #undef ELEVENWORDINLINE
                    262:                                #undef TWELVEWORDINLINE
                    263:                        
                    264:                                #define ONEWORDINLINE(w1) = w1
                    265:                                #define TWOWORDINLINE(w1,w2) = {w1,w2}
                    266:                                #define THREEWORDINLINE(w1,w2,w3) = {w1,w2,w3}
                    267:                                #define FOURWORDINLINE(w1,w2,w3,w4)  = {w1,w2,w3,w4}
                    268:                                #define FIVEWORDINLINE(w1,w2,w3,w4,w5) = {w1,w2,w3,w4,w5}
                    269:                                #define SIXWORDINLINE(w1,w2,w3,w4,w5,w6)         = {w1,w2,w3,w4,w5,w6}
                    270:                                #define SEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7)    = {w1,w2,w3,w4,w5,w6,w7}
                    271:                                #define EIGHTWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8)         = {w1,w2,w3,w4,w5,w6,w7,w8}
                    272:                                #define NINEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9)       = {w1,w2,w3,w4,w5,w6,w7,w8,w9}
                    273:                                #define TENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10)  = {w1,w2,w3,w4,w5,w6,w7,w8,w9,w10}
                    274:                                #define ELEVENWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11)     = {w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11}
                    275:                                #define TWELVEWORDINLINE(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12)         = {w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12}
                    276:                        #endif
                    277:                #endif
                    278:        
                    279: 
                    280: #if PRAGMA_STRUCT_ALIGN
                    281:        #pragma options align=reset
                    282: #elif PRAGMA_STRUCT_PACKPUSH
                    283:        #pragma pack(pop)
                    284: #elif PRAGMA_STRUCT_PACK
                    285:        #pragma pack()
                    286: #endif
                    287: 
                    288: #ifdef PRAGMA_IMPORT_OFF
                    289: #pragma import off
                    290: #elif PRAGMA_IMPORT
                    291: #pragma import reset
                    292: #endif
                    293: 
                    294: #ifdef __cplusplus
                    295: }
                    296: #endif
                    297: 
                    298: #endif /* __PCI__ */
                    299: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.