1/****************************************************************************
2 ****************************************************************************
3 ***
4 ***   This header was automatically generated from a Linux kernel header
5 ***   of the same name, to make information necessary for userspace to
6 ***   call into the kernel available to libc.  It contains only constants,
7 ***   structures, and macros generated from the original header, and thus,
8 ***   contains no copyrightable information.
9 ***
10 ****************************************************************************
11 ****************************************************************************/
12#ifndef _LINUX_VM86_H
13#define _LINUX_VM86_H
14
15#define TF_MASK 0x00000100
16#define IF_MASK 0x00000200
17#define IOPL_MASK 0x00003000
18#define NT_MASK 0x00004000
19#define VM_MASK 0
20#define AC_MASK 0x00040000
21#define VIF_MASK 0x00080000
22#define VIP_MASK 0x00100000
23#define ID_MASK 0x00200000
24
25#define BIOSSEG 0x0f000
26
27#define CPU_086 0
28#define CPU_186 1
29#define CPU_286 2
30#define CPU_386 3
31#define CPU_486 4
32#define CPU_586 5
33
34#define VM86_TYPE(retval) ((retval) & 0xff)
35#define VM86_ARG(retval) ((retval) >> 8)
36
37#define VM86_SIGNAL 0
38#define VM86_UNKNOWN 1
39#define VM86_INTx 2
40#define VM86_STI 3
41
42#define VM86_PICRETURN 4
43#define VM86_TRAP 6
44
45#define VM86_PLUS_INSTALL_CHECK 0
46#define VM86_ENTER 1
47#define VM86_ENTER_NO_BYPASS 2
48#define VM86_REQUEST_IRQ 3
49#define VM86_FREE_IRQ 4
50#define VM86_GET_IRQ_BITS 5
51#define VM86_GET_AND_RESET_IRQ 6
52
53struct vm86_regs {
54
55 long ebx;
56 long ecx;
57 long edx;
58 long esi;
59 long edi;
60 long ebp;
61 long eax;
62 long __null_ds;
63 long __null_es;
64 long __null_fs;
65 long __null_gs;
66 long orig_eax;
67 long eip;
68 unsigned short cs, __csh;
69 long eflags;
70 long esp;
71 unsigned short ss, __ssh;
72
73 unsigned short es, __esh;
74 unsigned short ds, __dsh;
75 unsigned short fs, __fsh;
76 unsigned short gs, __gsh;
77};
78
79struct revectored_struct {
80 unsigned long __map[8];
81};
82
83struct vm86_struct {
84 struct vm86_regs regs;
85 unsigned long flags;
86 unsigned long screen_bitmap;
87 unsigned long cpu_type;
88 struct revectored_struct int_revectored;
89 struct revectored_struct int21_revectored;
90};
91
92#define VM86_SCREEN_BITMAP 0x0001
93
94struct vm86plus_info_struct {
95 unsigned long force_return_for_pic:1;
96 unsigned long vm86dbg_active:1;
97 unsigned long vm86dbg_TFpendig:1;
98 unsigned long unused:28;
99 unsigned long is_vm86pus:1;
100 unsigned char vm86dbg_intxxtab[32];
101};
102
103struct vm86plus_struct {
104 struct vm86_regs regs;
105 unsigned long flags;
106 unsigned long screen_bitmap;
107 unsigned long cpu_type;
108 struct revectored_struct int_revectored;
109 struct revectored_struct int21_revectored;
110 struct vm86plus_info_struct vm86plus;
111};
112
113#endif
114