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/int86.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 /*      int86.h - 8086 interrupt types                  Author: Kees J. Bot
    2  *                                                              3 May 2000
    3  */
    4 
    5 /* Registers used in an PC real mode call for BIOS or DOS services.  A
    6  * driver is called through the vector if the interrupt number is zero.
    7  */
    8 union reg86 {
    9     struct l {
   10         u32_t   ef;                     /* 32 bit flags (output only) */
   11         u32_t   vec;                    /* Driver vector (input only) */
   12         u32_t   _ds_es[1];
   13         u32_t   eax;                    /* 32 bit general registers */
   14         u32_t   ebx;
   15         u32_t   ecx;
   16         u32_t   edx;
   17         u32_t   esi;
   18         u32_t   edi;
   19         u32_t   ebp;
   20     } l;
   21     struct w {
   22         u16_t   f, _ef[1];              /* 16 bit flags (output only) */
   23         u16_t   off, seg;               /* Driver vector (input only) */
   24         u16_t   ds, es;                 /* DS and ES real mode segment regs */
   25         u16_t   ax, _eax[1];            /* 16 bit general registers */
   26         u16_t   bx, _ebx[1];
   27         u16_t   cx, _ecx[1];
   28         u16_t   dx, _edx[1];
   29         u16_t   si, _esi[1];
   30         u16_t   di, _edi[1];
   31         u16_t   bp, _ebp[1];
   32     } w;
   33     struct b {
   34         u8_t    intno, _intno[3];       /* Interrupt number (input only) */
   35         u8_t    _vec[4];
   36         u8_t    _ds_es[4];
   37         u8_t    al, ah, _eax[2];        /* 8 bit general registers */
   38         u8_t    bl, bh, _ebx[2];
   39         u8_t    cl, ch, _ecx[2];
   40         u8_t    dl, dh, _edx[2];
   41         u8_t    _esi[4];
   42         u8_t    _edi[4];
   43         u8_t    _ebp[4];
   44     } b;
   45 };
   46 
   47 struct reg86u { union reg86 u; };       /* Better for forward declarations */
   48 
   49 /* Parameters passed on ioctls to the memory task. */
   50 
   51 struct mio_int86 {              /* MIOCINT86 */
   52         union reg86 reg86;              /* x86 registers as above */
   53         u16_t   off, seg;               /* Address of kernel buffer */
   54         void    *buf;                   /* User data buffer */
   55         size_t  len;                    /* Size of user buffer */
   56 };
   57 
   58 struct mio_ldt86 {              /* MIOCGLDT86, MIOCSLDT86 */
   59         size_t  idx;                    /* Index in process' LDT */
   60         u16_t   entry[4];               /* One LDT entry to get or set. */
   61 };

Cache object: 2156a234f17e0f8be5080c462baefd04


[ 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.