1 #ifndef _LINUX_VM86_H
2 #define _LINUX_VM86_H
3
4 #define VM_MASK 0x00020000
5
6 /*
7 * This is the stack-layout when we have done a "SAVE_ALL" from vm86
8 * mode - the main change is that the old segment descriptors aren't
9 * useful any more and are forced to be zero by the kernel (and the
10 * hardware when a trap occurs), and the real segment descriptors are
11 * at the end of the structure. Look at ptrace.h to see the "normal"
12 * setup.
13 */
14
15 struct vm86_regs {
16 /*
17 * normal regs, with special meaning for the segment descriptors..
18 */
19 long ebx;
20 long ecx;
21 long edx;
22 long esi;
23 long edi;
24 long ebp;
25 long eax;
26 long __null_ds;
27 long __null_es;
28 long __null_fs;
29 long __null_gs;
30 long orig_eax;
31 long eip;
32 long cs;
33 long eflags;
34 long esp;
35 long ss;
36 /*
37 * these are specific to v86 mode:
38 */
39 long es;
40 long ds;
41 long fs;
42 long gs;
43 };
44
45 struct vm86_struct {
46 struct vm86_regs regs;
47 unsigned long flags;
48 unsigned long screen_bitmap;
49 };
50
51 /*
52 * flags masks
53 */
54 #define VM86_SCREEN_BITMAP 1
55
56 #endif