source: trunk/minix/include/ibm/int86.h@ 19

Last change on this file since 19 was 9, checked in by Mattia Monga, 14 years ago

Minix 3.1.2a

File size: 1.6 KB
Line 
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 */
8union 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
47struct reg86u { union reg86 u; }; /* Better for forward declarations */
48
49/* Parameters passed on ioctls to the memory task. */
50
51struct 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
58struct 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};
Note: See TracBrowser for help on using the repository browser.