Annotation of XNU/osfmk/i386/AT386/mp/mp_v1_1.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
                      3:  *
                      4:  * @APPLE_LICENSE_HEADER_START@
                      5:  * 
                      6:  * The contents of this file constitute Original Code as defined in and
                      7:  * are subject to the Apple Public Source License Version 1.1 (the
                      8:  * "License").  You may not use this file except in compliance with the
                      9:  * License.  Please obtain a copy of the License at
                     10:  * http://www.apple.com/publicsource and read it before using this file.
                     11:  * 
                     12:  * This Original Code and all software distributed under the License are
                     13:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
                     14:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
                     15:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
                     16:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
                     17:  * License for the specific language governing rights and limitations
                     18:  * under the License.
                     19:  * 
                     20:  * @APPLE_LICENSE_HEADER_END@
                     21:  */
                     22: /*
                     23:  * @OSF_COPYRIGHT@
                     24:  */
                     25: 
                     26: #ifndef        _MP_MP_V1_1_H_
                     27: #define        _MP_MP_V1_1_H_
                     28: 
                     29: #include <mach/mach_types.h>
                     30: #include <i386/apic.h>
                     31: #include <kern/lock.h>
                     32: 
                     33: struct MP_Config_EntryP {
                     34:        unsigned char   Entry_Type;
                     35:        unsigned char   Local_Apic_Id;
                     36:        unsigned char   Local_Apic_Version;
                     37:        unsigned char   CPU_Flags;
                     38:        unsigned int    CPU_Signature;
                     39:        unsigned int    Feature_Flags;
                     40:        unsigned int    Reserved[2];
                     41: };
                     42: 
                     43: /* Entry types */
                     44: 
                     45: #define MP_CPU_ENTRY           0       /* Processor entry */
                     46: #define MP_BUS_ENTRY           1       /* bus entry */
                     47: #define MP_IO_APIC_ENTRY       2       /* I/O APIC entry */
                     48: #define MP_IO_INT_ENTRY                3       /* I/O Interrupt assignment */
                     49: #define MP_LOC_INT_ENTRY       4       /* Local Interrupt assignment */
                     50: 
                     51: struct MP_Config_EntryB {
                     52:        unsigned char   Entry_Type;
                     53:        unsigned char   Bus_Id;
                     54:        char            Ident[6];
                     55: };
                     56: 
                     57: struct MP_Config_EntryA {
                     58:        unsigned char   Entry_Type;
                     59:        unsigned char   IO_Apic_Id;
                     60:        unsigned char   IO_Apic_Version;
                     61:        unsigned char   IO_Apic_Flags;
                     62:        vm_offset_t     IO_Apic_Address;
                     63: };
                     64: 
                     65: struct MP_Config_EntryI {
                     66:        unsigned char   Entry_Type;
                     67:        unsigned char   Int_Type;
                     68:        unsigned short  Int_Flag;
                     69:        unsigned char   Source_Bus;
                     70:        unsigned char   Source_IRQ;
                     71:        unsigned char   Dest_IO_Apic;
                     72:        unsigned char   Dest_INTIN;
                     73: };
                     74: struct MP_Config_EntryL {
                     75:        unsigned char   Entry_Type;
                     76:        unsigned char   Int_Type;
                     77:        unsigned short  Int_Flag;
                     78:        unsigned char   Source_Bus;
                     79:        unsigned char   Source_IRQ;
                     80:        unsigned char   Dest_Local_Apic;
                     81:        unsigned char   Dest_INTIN;
                     82: };
                     83: 
                     84: struct MP_FPS_struct {
                     85:        unsigned int    Signature;
                     86:        vm_offset_t     Config_Ptr;
                     87:        unsigned char   Length;
                     88:        unsigned char   Spec_Rev;
                     89:        unsigned char   CheckSum;
                     90:        unsigned char   Feature[5];
                     91: };
                     92: 
                     93: struct MP_Config_Table {
                     94:        unsigned int    Signature;
                     95:        unsigned short  Length;
                     96:        unsigned char   Spec_Rev;
                     97:        unsigned char   CheckSum;
                     98:        char            OEM[8];
                     99:        char            PROD[12];
                    100:        vm_offset_t     OEM_Ptr;
                    101:        unsigned short  OEM_Size;
                    102:        unsigned short  Entries;
                    103:        vm_offset_t     Local_Apic;
                    104:        unsigned int    Reserved;
                    105: };
                    106: 
                    107: #define        IMCR_ADDRESS            0x22
                    108: #define IMCR_DATA              0x23
                    109: #define        IMCR_SELECT             0x70
                    110: #define IMCR_APIC_ENABLE       0x01
                    111: 
                    112: #if 0
                    113: extern boolean_t       mp_v1_1_take_irq(int    pic,
                    114:                                         int    unit,
                    115:                                         int    spl, 
                    116:                                         i386_intr_t    intr);
                    117: 
                    118: extern boolean_t       mp_v1_1_reset_irq(int           pic,
                    119:                                          int           *unit, 
                    120:                                          int           *spl, 
                    121:                                          i386_intr_t   *intr);
                    122: 
                    123: #endif
                    124: 
                    125: void mp_v1_1_init(void);
                    126: boolean_t mp_v1_1_io_lock(int, struct processor **);
                    127: void mp_v1_1_io_unlock(struct processor *);
                    128: 
                    129: /* Intel default Configurations */
                    130: 
                    131: #define        MP_PROPRIETARY_CONF     0
                    132: #define        MP_ISA_CONF             1
                    133: #define        MP_EISA_1_CONF          2
                    134: #define        MP_EISA_2_CONF          3
                    135: #define        MP_MCA_CONF             4
                    136: #define        MP_ISA_PCI_CONF         5
                    137: #define        MP_EISA_PCI_CONF        6
                    138: #define        MP_MCA_PCI_CONF         7
                    139: 
                    140: #if    NCPUS > 1
                    141: #define at386_io_lock_state()  panic("at386_io_lock_state called")
                    142: #define at386_io_lock(x)       panic("at386_io_lock called");
                    143: #define at386_io_unlock()      panic("at386_io_unlock")
                    144: #endif /* NCPUS > 1 */
                    145: 
                    146: #endif /* _MP_MP_V1_1_H_ */

unix.superglobalmegacorp.com

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