56 lines
992 B
C
56 lines
992 B
C
#ifndef _LINUX_VM86_H
|
|
#define _LINUX_VM86_H
|
|
|
|
#define VM_MASK 0x00020000
|
|
|
|
/*
|
|
* This is the stack-layout when we have done a "SAVE_ALL" from vm86
|
|
* mode - the main change is that the old segment descriptors aren't
|
|
* useful any more and are forced to be zero by the kernel (and the
|
|
* hardware when a trap occurs), and the real segment descriptors are
|
|
* at the end of the structure. Look at ptrace.h to see the "normal"
|
|
* setup.
|
|
*/
|
|
|
|
struct vm86_regs {
|
|
/*
|
|
* normal regs, with special meaning for the segment descriptors..
|
|
*/
|
|
long ebx;
|
|
long ecx;
|
|
long edx;
|
|
long esi;
|
|
long edi;
|
|
long ebp;
|
|
long eax;
|
|
long __null_ds;
|
|
long __null_es;
|
|
long __null_fs;
|
|
long __null_gs;
|
|
long orig_eax;
|
|
long eip;
|
|
long cs;
|
|
long eflags;
|
|
long esp;
|
|
long ss;
|
|
/*
|
|
* these are specific to v86 mode:
|
|
*/
|
|
long es;
|
|
long ds;
|
|
long fs;
|
|
long gs;
|
|
};
|
|
|
|
struct vm86_struct {
|
|
struct vm86_regs regs;
|
|
unsigned long flags;
|
|
unsigned long screen_bitmap;
|
|
};
|
|
|
|
/*
|
|
* flags masks
|
|
*/
|
|
#define VM86_SCREEN_BITMAP 1
|
|
|
|
#endif
|