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 53 struct 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 79 struct revectored_struct { 80 unsigned long __map[8]; 81 }; 82 83 struct 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 94 struct 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 103 struct 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