Annotation of kernel/machdep/i386/idt.c, revision 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:  * Copyright (c) 1992 NeXT Computer, Inc.
        !            27:  *
        !            28:  * Intel386 Family:    Interrupt descriptor table.
        !            29:  *
        !            30:  * HISTORY
        !            31:  *
        !            32:  * 3 April 1992 ? at NeXT
        !            33:  *     Created.
        !            34:  */
        !            35: 
        !            36: #import <mach/mach_types.h>
        !            37: 
        !            38: #import <architecture/i386/table.h>
        !            39: 
        !            40: #import <machdep/i386/idt.h>
        !            41: #import <machdep/i386/desc_inline.h>
        !            42: 
        !            43: extern trp_divr(), trp_debg(), int__nmi(), trp_brpt(); 
        !            44: extern trp_over(), flt_bnds(), flt_opcd(), flt_ncpr(); 
        !            45: extern abt_dblf(), abt_over(), flt_btss(), flt_bseg();
        !            46: extern flt_bstk(), flt_prot(), trp_0x0F(), flt_page();
        !            47: extern flt_bcpr(), trp_0x11(), trp_0x12(), trp_0x13();
        !            48: extern trp_0x14(), trp_0x15(), trp_0x16(), trp_0x17();
        !            49: extern trp_0x18(), trp_0x19(), trp_0x1A(), trp_0x1B();
        !            50: extern trp_0x1C(), trp_0x1D(), trp_0x1E(), trp_0x1F();
        !            51: extern trp_0x20(), trp_0x21(), trp_0x22(), trp_0x23();
        !            52: extern trp_0x24(), trp_0x25(), trp_0x26(), trp_0x27();
        !            53: extern trp_0x28(), trp_0x29(), trp_0x2A(), trp_0x2B();
        !            54: extern trp_0x2C(), trp_0x2D(), trp_0x2E(), trp_0x2F();
        !            55: extern trp_0x30(), trp_0x31(), trp_0x32(), trp_0x33();
        !            56: extern trp_0x34(), trp_0x35(), trp_0x36(), trp_0x37();
        !            57: extern trp_0x38(), trp_0x39(), trp_0x3A(), trp_0x3B();
        !            58: extern trp_0x3C(), trp_0x3D(), trp_0x3E(), trp_0x3F();
        !            59: 
        !            60: extern int_0x40(), int_0x41(), int_0x42(), int_0x43();
        !            61: extern int_0x44(), int_0x45(), int_0x46(), int_0x47();
        !            62: extern int_0x48(), int_0x49(), int_0x4A(), int_0x4B();
        !            63: extern int_0x4C(), int_0x4D(), int_0x4E(), int_0x4F();
        !            64: extern int_0x50(), int_0x51(), int_0x52(), int_0x53();
        !            65: extern int_0x54(), int_0x55(), int_0x56(), int_0x57();
        !            66: extern int_0x58(), int_0x59(), int_0x5A(), int_0x5B();
        !            67: extern int_0x5C(), int_0x5D(), int_0x5E(), int_0x5F();
        !            68: extern int_0x60(), int_0x61(), int_0x62(), int_0x63();
        !            69: extern int_0x64(), int_0x65(), int_0x66(), int_0x67();
        !            70: extern int_0x68(), int_0x69(), int_0x6A(), int_0x6B();
        !            71: extern int_0x6C(), int_0x6D(), int_0x6E(), int_0x6F();
        !            72: extern int_0x70(), int_0x71(), int_0x72(), int_0x73();
        !            73: extern int_0x74(), int_0x75(), int_0x76(), int_0x77();
        !            74: extern int_0x78(), int_0x79(), int_0x7A(), int_0x7B();
        !            75: extern int_0x7C(), int_0x7D(), int_0x7E(), int_0x7F();
        !            76: extern int_0x80(), int_0x81(), int_0x82(), int_0x83();
        !            77: extern int_0x84(), int_0x85(), int_0x86(), int_0x87();
        !            78: extern int_0x88(), int_0x89(), int_0x8A(), int_0x8B();
        !            79: extern int_0x8C(), int_0x8D(), int_0x8E(), int_0x8F();
        !            80: extern int_0x90(), int_0x91(), int_0x92(), int_0x93();
        !            81: extern int_0x94(), int_0x95(), int_0x96(), int_0x97();
        !            82: extern int_0x98(), int_0x99(), int_0x9A(), int_0x9B();
        !            83: extern int_0x9C(), int_0x9D(), int_0x9E(), int_0x9F();
        !            84: extern int_0xA0(), int_0xA1(), int_0xA2(), int_0xA3();
        !            85: extern int_0xA4(), int_0xA5(), int_0xA6(), int_0xA7();
        !            86: extern int_0xA8(), int_0xA9(), int_0xAA(), int_0xAB();
        !            87: extern int_0xAC(), int_0xAD(), int_0xAE(), int_0xAF();
        !            88: extern int_0xB0(), int_0xB1(), int_0xB2(), int_0xB3();
        !            89: extern int_0xB4(), int_0xB5(), int_0xB6(), int_0xB7();
        !            90: extern int_0xB8(), int_0xB9(), int_0xBA(), int_0xBB();
        !            91: extern int_0xBC(), int_0xBD(), int_0xBE(), int_0xBF();
        !            92: extern int_0xC0(), int_0xC1(), int_0xC2(), int_0xC3();
        !            93: extern int_0xC4(), int_0xC5(), int_0xC6(), int_0xC7();
        !            94: extern int_0xC8(), int_0xC9(), int_0xCA(), int_0xCB();
        !            95: extern int_0xCC(), int_0xCD(), int_0xCE(), int_0xCF();
        !            96: extern int_0xD0(), int_0xD1(), int_0xD2(), int_0xD3();
        !            97: extern int_0xD4(), int_0xD5(), int_0xD6(), int_0xD7();
        !            98: extern int_0xD8(), int_0xD9(), int_0xDA(), int_0xDB();
        !            99: extern int_0xDC(), int_0xDD(), int_0xDE(), int_0xDF();
        !           100: extern int_0xE0(), int_0xE1(), int_0xE2(), int_0xE3();
        !           101: extern int_0xE4(), int_0xE5(), int_0xE6(), int_0xE7();
        !           102: extern int_0xE8(), int_0xE9(), int_0xEA(), int_0xEB();
        !           103: extern int_0xEC(), int_0xED(), int_0xEE(), int_0xEF();
        !           104: extern int_0xF0(), int_0xF1(), int_0xF2(), int_0xF3();
        !           105: extern int_0xF4(), int_0xF5(), int_0xF6(), int_0xF7();
        !           106: extern int_0xF8(), int_0xF9(), int_0xFA(), int_0xFB();
        !           107: extern int_0xFC(), int_0xFD(), int_0xFE(), int_0xFF();
        !           108: 
        !           109: void
        !           110: locate_idt(
        !           111:     vm_offset_t                base
        !           112: )
        !           113: {
        !           114:     extern
        !           115:        unsigned int    idt_base;
        !           116:     extern
        !           117:        unsigned short  idt_limit;
        !           118:        
        !           119:     idt_base = base;
        !           120:     idt_limit = (IDTSZ * sizeof (idt_entry_t)) - 1;
        !           121:     
        !           122:     asm volatile("lidt %0"
        !           123:                    :
        !           124:                    : "m" (idt_limit));
        !           125: }
        !           126: 
        !           127: 
        !           128: typedef struct {
        !           129:     vm_offset_t                offset;
        !           130:     sel_t              seg;
        !           131:     unsigned short     type    :5,
        !           132:                        dpl     :2,
        !           133:                                :9;
        !           134: } idt_pseudo_entry_t;
        !           135: 
        !           136: idt_pseudo_entry_t     idt_pseudo[];
        !           137: 
        !           138: void
        !           139: idt_init(void)
        !           140: {
        !           141:     idt_pseudo_entry_t tmp;
        !           142:     int                        i;
        !           143: 
        !           144:     for (i = 0; i < IDTSZ; i++) {
        !           145:        tmp = idt_pseudo[i];
        !           146:        if (tmp.type == DESC_TRAP_GATE)
        !           147:            make_trap_gate((trap_gate_t *)&idt[i],
        !           148:                                            tmp.seg,
        !           149:                                            tmp.offset,
        !           150:                                            tmp.dpl);
        !           151:        else
        !           152:        if (tmp.type == DESC_INTR_GATE)
        !           153:            make_intr_gate((intr_gate_t *)&idt[i],
        !           154:                                            tmp.seg,
        !           155:                                            tmp.offset,
        !           156:                                            tmp.dpl);
        !           157:        else
        !           158:        if (tmp.type == DESC_TASK_GATE)
        !           159:            make_task_gate((task_gate_t *)&idt[i],
        !           160:                                            tmp.seg,
        !           161:                                            tmp.offset,
        !           162:                                            tmp.dpl);
        !           163:     }
        !           164:     
        !           165:     locate_idt((vm_offset_t) idt);
        !           166: }
        !           167: 
        !           168: #define IPE(o, t, p)   \
        !           169:     { (vm_offset_t)(o), KCS_SEL, (t), (p) }
        !           170: 
        !           171: #define TG     DESC_TRAP_GATE
        !           172: #define IG     DESC_INTR_GATE
        !           173: #define K      KERN_PRIV
        !           174: #define U      USER_PRIV
        !           175: 
        !           176: idt_pseudo_entry_t     idt_pseudo[IDTSZ] = {
        !           177:     IPE(trp_divr,      TG, K),
        !           178:     IPE(trp_debg,      IG, K),
        !           179:     IPE(int__nmi,      IG, K),
        !           180:     IPE(trp_brpt,      TG, U),
        !           181:     IPE(trp_over,      TG, U),
        !           182:     IPE(flt_bnds,      TG, U),
        !           183:     IPE(flt_opcd,      TG, K),
        !           184:     IPE(flt_ncpr,      TG, K),
        !           185:     IPE(abt_dblf,      TG, K),
        !           186:     IPE(abt_over,      TG, K),
        !           187:     IPE(flt_btss,      TG, K),
        !           188:     IPE(flt_bseg,      TG, K),
        !           189:     IPE(flt_bstk,      TG, K),
        !           190:     IPE(flt_prot,      TG, K),
        !           191:     IPE(flt_page,      TG, K),
        !           192:     IPE(trp_0x0F,      TG, K),
        !           193:     IPE(flt_bcpr,      TG, K),
        !           194:     IPE(trp_0x11,      TG, K),
        !           195:     IPE(trp_0x12,      TG, K),
        !           196:     IPE(trp_0x13,      TG, K),
        !           197:     IPE(trp_0x14,      TG, K),
        !           198:     IPE(trp_0x15,      TG, K),
        !           199:     IPE(trp_0x16,      TG, K),
        !           200:     IPE(trp_0x17,      TG, K),
        !           201:     IPE(trp_0x18,      TG, K),
        !           202:     IPE(trp_0x19,      TG, K),
        !           203:     IPE(trp_0x1A,      TG, K),
        !           204:     IPE(trp_0x1B,      TG, K),
        !           205:     IPE(trp_0x1C,      TG, K),
        !           206:     IPE(trp_0x1D,      TG, K),
        !           207:     IPE(trp_0x1E,      TG, K),
        !           208:     IPE(trp_0x1F,      TG, K),
        !           209:     IPE(trp_0x20,      TG, K),
        !           210:     IPE(trp_0x21,      TG, K),
        !           211:     IPE(trp_0x22,      TG, K),
        !           212:     IPE(trp_0x23,      TG, K),
        !           213:     IPE(trp_0x24,      TG, K),
        !           214:     IPE(trp_0x25,      TG, K),
        !           215:     IPE(trp_0x26,      TG, K),
        !           216:     IPE(trp_0x27,      TG, K),
        !           217:     IPE(trp_0x28,      TG, K),
        !           218:     IPE(trp_0x29,      TG, K),
        !           219:     IPE(trp_0x2A,      TG, K),
        !           220:     IPE(trp_0x2B,      TG, K),
        !           221:     IPE(trp_0x2C,      TG, K),
        !           222:     IPE(trp_0x2D,      TG, K),
        !           223:     IPE(trp_0x2E,      TG, K),
        !           224:     IPE(trp_0x2F,      TG, K),
        !           225:     IPE(trp_0x30,      TG, K),
        !           226:     IPE(trp_0x31,      TG, K),
        !           227:     IPE(trp_0x32,      TG, K),
        !           228:     IPE(trp_0x33,      TG, K),
        !           229:     IPE(trp_0x34,      TG, K),
        !           230:     IPE(trp_0x35,      TG, K),
        !           231:     IPE(trp_0x36,      TG, K),
        !           232:     IPE(trp_0x37,      TG, K),
        !           233:     IPE(trp_0x38,      TG, K),
        !           234:     IPE(trp_0x39,      TG, K),
        !           235:     IPE(trp_0x3A,      TG, K),
        !           236:     IPE(trp_0x3B,      TG, K),
        !           237:     IPE(trp_0x3C,      TG, K),
        !           238:     IPE(trp_0x3D,      TG, K),
        !           239:     IPE(trp_0x3E,      TG, K),
        !           240:     IPE(trp_0x3F,      TG, K),
        !           241: 
        !           242:     IPE(int_0x40,      IG, K),
        !           243:     IPE(int_0x41,      IG, K),
        !           244:     IPE(int_0x42,      IG, K),
        !           245:     IPE(int_0x43,      IG, K),
        !           246:     IPE(int_0x44,      IG, K),
        !           247:     IPE(int_0x45,      IG, K),
        !           248:     IPE(int_0x46,      IG, K),
        !           249:     IPE(int_0x47,      IG, K),
        !           250:     IPE(int_0x48,      IG, K),
        !           251:     IPE(int_0x49,      IG, K),
        !           252:     IPE(int_0x4A,      IG, K),
        !           253:     IPE(int_0x4B,      IG, K),
        !           254:     IPE(int_0x4C,      IG, K),
        !           255:     IPE(int_0x4D,      IG, K),
        !           256:     IPE(int_0x4E,      IG, K),
        !           257:     IPE(int_0x4F,      IG, K),
        !           258:     IPE(int_0x50,      IG, K),
        !           259:     IPE(int_0x51,      IG, K),
        !           260:     IPE(int_0x52,      IG, K),
        !           261:     IPE(int_0x53,      IG, K),
        !           262:     IPE(int_0x54,      IG, K),
        !           263:     IPE(int_0x55,      IG, K),
        !           264:     IPE(int_0x56,      IG, K),
        !           265:     IPE(int_0x57,      IG, K),
        !           266:     IPE(int_0x58,      IG, K),
        !           267:     IPE(int_0x59,      IG, K),
        !           268:     IPE(int_0x5A,      IG, K),
        !           269:     IPE(int_0x5B,      IG, K),
        !           270:     IPE(int_0x5C,      IG, K),
        !           271:     IPE(int_0x5D,      IG, K),
        !           272:     IPE(int_0x5E,      IG, K),
        !           273:     IPE(int_0x5F,      IG, K),
        !           274:     IPE(int_0x60,      IG, K),
        !           275:     IPE(int_0x61,      IG, K),
        !           276:     IPE(int_0x62,      IG, K),
        !           277:     IPE(int_0x63,      IG, K),
        !           278:     IPE(int_0x64,      IG, K),
        !           279:     IPE(int_0x65,      IG, K),
        !           280:     IPE(int_0x66,      IG, K),
        !           281:     IPE(int_0x67,      IG, K),
        !           282:     IPE(int_0x68,      IG, K),
        !           283:     IPE(int_0x69,      IG, K),
        !           284:     IPE(int_0x6A,      IG, K),
        !           285:     IPE(int_0x6B,      IG, K),
        !           286:     IPE(int_0x6C,      IG, K),
        !           287:     IPE(int_0x6D,      IG, K),
        !           288:     IPE(int_0x6E,      IG, K),
        !           289:     IPE(int_0x6F,      IG, K),
        !           290:     IPE(int_0x70,      IG, K),
        !           291:     IPE(int_0x71,      IG, K),
        !           292:     IPE(int_0x72,      IG, K),
        !           293:     IPE(int_0x73,      IG, K),
        !           294:     IPE(int_0x74,      IG, K),
        !           295:     IPE(int_0x75,      IG, K),
        !           296:     IPE(int_0x76,      IG, K),
        !           297:     IPE(int_0x77,      IG, K),
        !           298:     IPE(int_0x78,      IG, K),
        !           299:     IPE(int_0x79,      IG, K),
        !           300:     IPE(int_0x7A,      IG, K),
        !           301:     IPE(int_0x7B,      IG, K),
        !           302:     IPE(int_0x7C,      IG, K),
        !           303:     IPE(int_0x7D,      IG, K),
        !           304:     IPE(int_0x7E,      IG, K),
        !           305:     IPE(int_0x7F,      IG, K),
        !           306:     IPE(int_0x80,      IG, K),
        !           307:     IPE(int_0x81,      IG, K),
        !           308:     IPE(int_0x82,      IG, K),
        !           309:     IPE(int_0x83,      IG, K),
        !           310:     IPE(int_0x84,      IG, K),
        !           311:     IPE(int_0x85,      IG, K),
        !           312:     IPE(int_0x86,      IG, K),
        !           313:     IPE(int_0x87,      IG, K),
        !           314:     IPE(int_0x88,      TG, K),
        !           315:     IPE(int_0x89,      TG, K),
        !           316:     IPE(int_0x8A,      TG, K), 
        !           317:     IPE(int_0x8B,      TG, K),
        !           318:     IPE(int_0x8C,      TG, K),
        !           319:     IPE(int_0x8D,      TG, K),
        !           320:     IPE(int_0x8E,      TG, K),
        !           321:     IPE(int_0x8F,      TG, K),
        !           322:     IPE(int_0x90,      TG, K),
        !           323:     IPE(int_0x91,      TG, K),
        !           324:     IPE(int_0x92,      TG, K),
        !           325:     IPE(int_0x93,      TG, K),
        !           326:     IPE(int_0x94,      TG, K),
        !           327:     IPE(int_0x95,      TG, K),
        !           328:     IPE(int_0x96,      TG, K),
        !           329:     IPE(int_0x97,      TG, K),
        !           330:     IPE(int_0x98,      TG, K),
        !           331:     IPE(int_0x99,      TG, K),
        !           332:     IPE(int_0x9A,      TG, K),
        !           333:     IPE(int_0x9B,      TG, K),
        !           334:     IPE(int_0x9C,      TG, K),
        !           335:     IPE(int_0x9D,      TG, K),
        !           336:     IPE(int_0x9E,      TG, K),
        !           337:     IPE(int_0x9F,      TG, K),
        !           338:     IPE(int_0xA0,      TG, K),
        !           339:     IPE(int_0xA1,      TG, K),
        !           340:     IPE(int_0xA2,      TG, K),
        !           341:     IPE(int_0xA3,      TG, K),
        !           342:     IPE(int_0xA4,      TG, K),
        !           343:     IPE(int_0xA5,      TG, K),
        !           344:     IPE(int_0xA6,      TG, K),
        !           345:     IPE(int_0xA7,      TG, K),
        !           346:     IPE(int_0xA8,      TG, K),
        !           347:     IPE(int_0xA9,      TG, K),
        !           348:     IPE(int_0xAA,      TG, K),
        !           349:     IPE(int_0xAB,      TG, K),
        !           350:     IPE(int_0xAC,      TG, K),
        !           351:     IPE(int_0xAD,      TG, K),
        !           352:     IPE(int_0xAE,      TG, K),
        !           353:     IPE(int_0xAF,      TG, K), 
        !           354:     IPE(int_0xB0,      TG, K), 
        !           355:     IPE(int_0xB1,      TG, K), 
        !           356:     IPE(int_0xB2,      TG, K), 
        !           357:     IPE(int_0xB3,      TG, K), 
        !           358:     IPE(int_0xB4,      TG, K), 
        !           359:     IPE(int_0xB5,      TG, K), 
        !           360:     IPE(int_0xB6,      TG, K), 
        !           361:     IPE(int_0xB7,      TG, K), 
        !           362:     IPE(int_0xB8,      TG, K), 
        !           363:     IPE(int_0xB9,      TG, K), 
        !           364:     IPE(int_0xBA,      TG, K), 
        !           365:     IPE(int_0xBB,      TG, K), 
        !           366:     IPE(int_0xBC,      TG, K), 
        !           367:     IPE(int_0xBD,      TG, K), 
        !           368:     IPE(int_0xBE,      TG, K), 
        !           369:     IPE(int_0xBF,      TG, K), 
        !           370:     IPE(int_0xC0,      TG, K), 
        !           371:     IPE(int_0xC1,      TG, K), 
        !           372:     IPE(int_0xC2,      TG, K), 
        !           373:     IPE(int_0xC3,      TG, K), 
        !           374:     IPE(int_0xC4,      TG, K), 
        !           375:     IPE(int_0xC5,      TG, K),
        !           376:     IPE(int_0xC6,      TG, K),
        !           377:     IPE(int_0xC7,      TG, K),
        !           378:     IPE(int_0xC8,      TG, K),
        !           379:     IPE(int_0xC9,      TG, K),
        !           380:     IPE(int_0xCA,      TG, K),
        !           381:     IPE(int_0xCB,      TG, K),
        !           382:     IPE(int_0xCC,      TG, K),
        !           383:     IPE(int_0xCD,      TG, K),
        !           384:     IPE(int_0xCE,      TG, K),
        !           385:     IPE(int_0xCF,      TG, K),
        !           386:     IPE(int_0xD0,      TG, K),
        !           387:     IPE(int_0xD1,      TG, K),
        !           388:     IPE(int_0xD2,      TG, K),
        !           389:     IPE(int_0xD3,      TG, K),
        !           390:     IPE(int_0xD4,      TG, K),
        !           391:     IPE(int_0xD5,      TG, K),
        !           392:     IPE(int_0xD6,      TG, K),
        !           393:     IPE(int_0xD7,      TG, K),
        !           394:     IPE(int_0xD8,      TG, K),
        !           395:     IPE(int_0xD9,      TG, K),
        !           396:     IPE(int_0xDA,      TG, K),
        !           397:     IPE(int_0xDB,      TG, K),
        !           398:     IPE(int_0xDC,      TG, K),
        !           399:     IPE(int_0xDD,      TG, K),
        !           400:     IPE(int_0xDE,      TG, K),
        !           401:     IPE(int_0xDF,      TG, K),
        !           402:     IPE(int_0xE0,      TG, K),
        !           403:     IPE(int_0xE1,      TG, K),
        !           404:     IPE(int_0xE2,      TG, K),
        !           405:     IPE(int_0xE3,      TG, K),
        !           406:     IPE(int_0xE4,      TG, K),
        !           407:     IPE(int_0xE5,      TG, K),
        !           408:     IPE(int_0xE6,      TG, K),
        !           409:     IPE(int_0xE7,      TG, K),
        !           410:     IPE(int_0xE8,      TG, K),
        !           411:     IPE(int_0xE9,      TG, K),
        !           412:     IPE(int_0xEA,      TG, K),
        !           413:     IPE(int_0xEB,      TG, K),
        !           414:     IPE(int_0xEC,      TG, K),
        !           415:     IPE(int_0xED,      TG, K),
        !           416:     IPE(int_0xEE,      TG, K),
        !           417:     IPE(int_0xEF,      TG, K),
        !           418:     IPE(int_0xF0,      TG, K),
        !           419:     IPE(int_0xF1,      TG, K),
        !           420:     IPE(int_0xF2,      TG, K),
        !           421:     IPE(int_0xF3,      TG, K),
        !           422:     IPE(int_0xF4,      TG, K),
        !           423:     IPE(int_0xF5,      TG, K),
        !           424:     IPE(int_0xF6,      TG, K),
        !           425:     IPE(int_0xF7,      TG, K),
        !           426:     IPE(int_0xF8,      TG, K),
        !           427:     IPE(int_0xF9,      TG, K),
        !           428:     IPE(int_0xFA,      TG, K),
        !           429:     IPE(int_0xFB,      TG, K),
        !           430:     IPE(int_0xFC,      TG, K),
        !           431:     IPE(int_0xFD,      TG, K),
        !           432:     IPE(int_0xFE,      TG, K),
        !           433:     IPE(int_0xFF,      TG, K),
        !           434: };
        !           435: 
        !           436: idt_t *                idt = (idt_entry_t *)idt_pseudo;
        !           437: 
        !           438: void
        !           439: idt_copy(
        !           440:     vm_offset_t                new_idt,
        !           441:     vm_size_t          length
        !           442: )
        !           443: {
        !           444:     if (length < (IDTSZ * sizeof (idt_entry_t)))
        !           445:        panic("idt_copy");
        !           446: 
        !           447:     (void) memcpy((void *)new_idt, idt, IDTSZ * sizeof (idt_entry_t));
        !           448:     (vm_offset_t)idt = new_idt;
        !           449: 
        !           450:     locate_idt((vm_offset_t) idt);
        !           451: }

unix.superglobalmegacorp.com

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