Home | History | Annotate | Download | only in asm
      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