kernel: print spurious interrupt message with increasing interval.
[minix.git] / include / arch / i386 / int86.h
blob30d6fa67f31e273bc0060bda2cc8183e3e4f077d
1 /* int86.h - 8086 interrupt types Author: Kees J. Bot
2 * 3 May 2000
3 */
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;
47 struct reg86u { union reg86 u; }; /* Better for forward declarations */
49 /* Parameters passed on ioctls to the memory task. */
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 */
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. */