Annotation of Gnu-Mach/i386/pc/i16/i16_pic.c, revision 1.1.1.1

1.1       root        1: /* 
                      2:  * Copyright (c) 1995 The University of Utah and
                      3:  * the Computer Systems Laboratory at the University of Utah (CSL).
                      4:  * All rights reserved.
                      5:  *
                      6:  * Permission to use, copy, modify and distribute this software is hereby
                      7:  * granted provided that (1) source code retains these copyright, permission,
                      8:  * and disclaimer notices, and (2) redistributions including binaries
                      9:  * reproduce the notices in supporting documentation, and (3) all advertising
                     10:  * materials mentioning features or use of this software display the following
                     11:  * acknowledgement: ``This product includes software developed by the
                     12:  * Computer Systems Laboratory at the University of Utah.''
                     13:  *
                     14:  * THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
                     15:  * IS" CONDITION.  THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
                     16:  * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
                     17:  *
                     18:  * CSL requests users of this software to return to [email protected] any
                     19:  * improvements that they make and grant CSL redistribution rights.
                     20:  *
                     21:  *      Author: Bryan Ford, University of Utah CSL
                     22:  */
                     23: 
                     24: #include <mach/machine/pio.h>
                     25: 
                     26: #include "pic.h"
                     27: #include "i16.h"
                     28: 
                     29: CODE16
                     30: 
                     31: /* Program the PICs to use a different set of interrupt vectors.
                     32:    Assumes processor I flag is off.  */
                     33: void i16_pic_set_master(int base)
                     34: {
                     35:        unsigned char old_mask;
                     36: 
                     37:        /* Save the original interrupt mask.  */
                     38:        old_mask = inb(MASTER_OCW);     PIC_DELAY();
                     39: 
                     40:        /* Initialize the master PIC.  */
                     41:        outb(MASTER_ICW, PICM_ICW1);    PIC_DELAY();
                     42:        outb(MASTER_OCW, base);         PIC_DELAY();
                     43:        outb(MASTER_OCW, PICM_ICW3);    PIC_DELAY();
                     44:        outb(MASTER_OCW, PICM_ICW4);    PIC_DELAY();
                     45: 
                     46:        /* Restore the original interrupt mask.  */
                     47:        outb(MASTER_OCW, old_mask);     PIC_DELAY();
                     48: }
                     49: 
                     50: void i16_pic_set_slave(int base)
                     51: {
                     52:        unsigned char old_mask;
                     53: 
                     54:        /* Save the original interrupt mask.  */
                     55:        old_mask = inb(SLAVES_OCW);     PIC_DELAY();
                     56: 
                     57:        /* Initialize the slave PIC.  */
                     58:        outb(SLAVES_ICW, PICS_ICW1);    PIC_DELAY();
                     59:        outb(SLAVES_OCW, base);         PIC_DELAY();
                     60:        outb(SLAVES_OCW, PICS_ICW3);    PIC_DELAY();
                     61:        outb(SLAVES_OCW, PICS_ICW4);    PIC_DELAY();
                     62: 
                     63:        /* Restore the original interrupt mask.  */
                     64:        outb(SLAVES_OCW, old_mask);     PIC_DELAY();
                     65: }
                     66: 

unix.superglobalmegacorp.com

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