Annotation of kernel/machdep/i386/intr_exported.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:  * Copyright (c) 1992 NeXT Computer, Inc.
                     27:  *
                     28:  * Interrupt handling exported definitions.
                     29:  *
                     30:  * HISTORY
                     31:  *
                     32:  * 10 July 1993 ? at NeXT
                     33:  *     Removed 'arg' from interrupt support.
                     34:  *     Removed old obsolete API.
                     35:  *     Cleaned up somewhat.
                     36:  * 5 July 1993 ? at NeXT
                     37:  *     Removed software interrupt support.
                     38:  * 26 August 1992 ? at NeXT
                     39:  *     Major rev for driverkit support.
                     40:  * 22 August 1992 ? at NeXT
                     41:  *     Added software interrupts.
                     42:  * 20 Aug 1992 Joe Pasqua
                     43:  *     Added protoypes for intr_enable_irq/disable_irq.
                     44:  * 1 June 1992 ? at NeXT
                     45:  *     Created.
                     46:  */
                     47: 
                     48: #import <mach/mach_types.h>
                     49: 
                     50: /*
                     51:  * A total of eight interrupt
                     52:  * levels are provided.
                     53:  */
                     54: #define INTR_NIPL      8
                     55: 
                     56: #define INTR_IPL0      0
                     57: #define INTR_IPL1      1
                     58: #define INTR_IPL2      2
                     59: #define INTR_IPL3      3
                     60: #define INTR_IPL4      4
                     61: #define INTR_IPL5      5
                     62: #define INTR_IPL6      6
                     63: #define INTR_IPL7      7
                     64: 
                     65: #define INTR_IPLHI     INTR_IPL7
                     66: 
                     67: typedef void
                     68: (*intr_handler_t)(
                     69:        unsigned int            which,
                     70:        void                    *state,
                     71:        int                     old_ipl
                     72: );
                     73: 
                     74: /*
                     75:  * Exported routines.
                     76:  */
                     77: 
                     78: /*
                     79:  * Core routines.
                     80:  */
                     81: void
                     82: intr_initialize(void);
                     83: 
                     84: void
                     85: intr_handler(
                     86:        void            *state
                     87: );
                     88:                                
                     89: /*
                     90:  * Hardware IRQ support.
                     91:  */
                     92: boolean_t
                     93: intr_register_irq(
                     94:        int             irq,
                     95:        intr_handler_t  routine,
                     96:        unsigned int    which,
                     97:        int             ipl
                     98: );
                     99: 
                    100: boolean_t
                    101: intr_unregister_irq(
                    102:        int             irq
                    103: );
                    104: 
                    105: boolean_t
                    106: intr_enable_irq(
                    107:        int             irq
                    108: );
                    109: 
                    110: boolean_t
                    111: intr_disable_irq(
                    112:        int             irq
                    113: );
                    114: 
                    115: boolean_t
                    116: intr_change_ipl(
                    117:        int             irq,
                    118:        int             ipl
                    119: );
                    120: 
                    121: boolean_t
                    122: intr_change_mode(
                    123:        int             irq,
                    124:        boolean_t       level_trig
                    125: );
                    126:                                
                    127: /*
                    128:  * Miscellaneous routines.
                    129:  */
                    130: boolean_t
                    131: intr_disbl(void);
                    132: 
                    133: boolean_t
                    134: intr_enbl(
                    135:        boolean_t       enable
                    136: );

unix.superglobalmegacorp.com

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