The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/include/ibm/interrupt.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* Interrupt numbers and hardware vectors. */
    2 
    3 #ifndef _INTERRUPT_H
    4 #define _INTERRUPT_H
    5 
    6 #if (CHIP == INTEL)
    7 
    8 /* 8259A interrupt controller ports. */
    9 #define INT_CTL         0x20    /* I/O port for interrupt controller */
   10 #define INT_CTLMASK     0x21    /* setting bits in this port disables ints */
   11 #define INT2_CTL        0xA0    /* I/O port for second interrupt controller */
   12 #define INT2_CTLMASK    0xA1    /* setting bits in this port disables ints */
   13 
   14 /* Magic numbers for interrupt controller. */
   15 #define END_OF_INT      0x20    /* code used to re-enable after an interrupt */
   16 
   17 /* Interrupt vectors defined/reserved by processor. */
   18 #define DIVIDE_VECTOR      0    /* divide error */
   19 #define DEBUG_VECTOR       1    /* single step (trace) */
   20 #define NMI_VECTOR         2    /* non-maskable interrupt */
   21 #define BREAKPOINT_VECTOR  3    /* software breakpoint */
   22 #define OVERFLOW_VECTOR    4    /* from INTO */
   23 
   24 /* Fixed system call vector. */
   25 #define SYS_VECTOR        32    /* system calls are made with int SYSVEC */
   26 #define SYS386_VECTOR     33    /* except 386 system calls use this */
   27 #define LEVEL0_VECTOR     34    /* for execution of a function at level 0 */
   28 
   29 /* Suitable irq bases for hardware interrupts.  Reprogram the 8259(s) from
   30  * the PC BIOS defaults since the BIOS doesn't respect all the processor's
   31  * reserved vectors (0 to 31).
   32  */
   33 #define BIOS_IRQ0_VEC   0x08    /* base of IRQ0-7 vectors used by BIOS */
   34 #define BIOS_IRQ8_VEC   0x70    /* base of IRQ8-15 vectors used by BIOS */
   35 #define IRQ0_VECTOR     0x50    /* nice vectors to relocate IRQ0-7 to */
   36 #define IRQ8_VECTOR     0x70    /* no need to move IRQ8-15 */
   37 
   38 /* Hardware interrupt numbers. */
   39 #define NR_IRQ_VECTORS    16
   40 #define CLOCK_IRQ          0
   41 #define KEYBOARD_IRQ       1
   42 #define CASCADE_IRQ        2    /* cascade enable for 2nd AT controller */
   43 #define ETHER_IRQ          3    /* default ethernet interrupt vector */
   44 #define SECONDARY_IRQ      3    /* RS232 interrupt vector for port 2 */
   45 #define RS232_IRQ          4    /* RS232 interrupt vector for port 1 */
   46 #define XT_WINI_IRQ        5    /* xt winchester */
   47 #define FLOPPY_IRQ         6    /* floppy disk */
   48 #define PRINTER_IRQ        7
   49 #define AT_WINI_0_IRQ     14    /* at winchester controller 0 */
   50 #define AT_WINI_1_IRQ     15    /* at winchester controller 1 */
   51 
   52 /* Interrupt number to hardware vector. */
   53 #define BIOS_VECTOR(irq)        \
   54         (((irq) < 8 ? BIOS_IRQ0_VEC : BIOS_IRQ8_VEC) + ((irq) & 0x07))
   55 #define VECTOR(irq)     \
   56         (((irq) < 8 ? IRQ0_VECTOR : IRQ8_VECTOR) + ((irq) & 0x07))
   57 
   58 #endif /* (CHIP == INTEL) */
   59 
   60 #endif /* _INTERRUPT_H */

Cache object: fa8859d14a27c672b112252ee46947e3


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.