(linenum→info "unix/slp.c:2238")

qemu/0.9.1/linux-user/i386/syscall.h

    1: /* default linux values for the selectors */
    2: #define __USER_CS       (0x23)
    3: #define __USER_DS       (0x2B)
    4: 
    5: struct target_pt_regs {
    6:         long ebx;
    7:         long ecx;
    8:         long edx;
    9:         long esi;
   10:         long edi;
   11:         long ebp;
   12:         long eax;
   13:         int  xds;
   14:         int  xes;
   15:         long orig_eax;
   16:         long eip;
   17:         int  xcs;
   18:         long eflags;
   19:         long esp;
   20:         int  xss;
   21: };
   22: 
   23: /* ioctls */
   24: 
   25: #define TARGET_LDT_ENTRIES      8192
   26: #define TARGET_LDT_ENTRY_SIZE   8
   27: 
   28: #define TARGET_GDT_ENTRIES             9
   29: #define TARGET_GDT_ENTRY_TLS_ENTRIES   3
   30: #define TARGET_GDT_ENTRY_TLS_MIN       6
   31: #define TARGET_GDT_ENTRY_TLS_MAX       (TARGET_GDT_ENTRY_TLS_MIN + TARGET_GDT_ENTRY_TLS_ENTRIES - 1)
   32: 
   33: struct target_modify_ldt_ldt_s {
   34:     unsigned int  entry_number;
   35:     abi_ulong base_addr;
   36:     unsigned int limit;
   37:     unsigned int flags;
   38: };
   39: 
   40: /* vm86 defines */
   41: 
   42: #define TARGET_BIOSSEG          0x0f000
   43: 
   44: #define TARGET_CPU_086          0
   45: #define TARGET_CPU_186          1
   46: #define TARGET_CPU_286          2
   47: #define TARGET_CPU_386          3
   48: #define TARGET_CPU_486          4
   49: #define TARGET_CPU_586          5
   50: 
   51: #define TARGET_VM86_SIGNAL      0    /* return due to signal */
   52: #define TARGET_VM86_UNKNOWN     1   /* unhandled GP fault - IO-instruction or similar */
   53: #define TARGET_VM86_INTx        2      /* int3/int x instruction (ARG = x) */
   54: #define TARGET_VM86_STI 3       /* sti/popf/iret instruction enabled virtual interrupts */
   55: 
   56: /*
   57:  * Additional return values when invoking new vm86()
   58:  */
   59: #define TARGET_VM86_PICRETURN   4 /* return due to pending PIC request */
   60: #define TARGET_VM86_TRAP        6      /* return due to DOS-debugger request */
   61: 
   62: /*
   63:  * function codes when invoking new vm86()
   64:  */
   65: #define TARGET_VM86_PLUS_INSTALL_CHECK  0
   66: #define TARGET_VM86_ENTER               1
   67: #define TARGET_VM86_ENTER_NO_BYPASS     2
   68: #define TARGET_VM86_REQUEST_IRQ 3
   69: #define TARGET_VM86_FREE_IRQ            4
   70: #define TARGET_VM86_GET_IRQ_BITS        5
   71: #define TARGET_VM86_GET_AND_RESET_IRQ   6
   72: 
   73: /*
   74:  * This is the stack-layout seen by the user space program when we have
   75:  * done a translation of "SAVE_ALL" from vm86 mode. The real kernel layout
   76:  * is 'kernel_vm86_regs' (see below).
   77:  */
   78: 
   79: struct target_vm86_regs {
   80: /*
   81:  * normal regs, with special meaning for the segment descriptors..
   82:  */
   83:         abi_long ebx;
   84:         abi_long ecx;
   85:         abi_long edx;
   86:         abi_long esi;
   87:         abi_long edi;
   88:         abi_long ebp;
   89:         abi_long eax;
   90:         abi_long __null_ds;
   91:         abi_long __null_es;
   92:         abi_long __null_fs;
   93:         abi_long __null_gs;
   94:         abi_long orig_eax;
   95:         abi_long eip;
   96:         unsigned short cs, __csh;
   97:         abi_long eflags;
   98:         abi_long esp;
   99:         unsigned short ss, __ssh;
  100: /*
  101:  * these are specific to v86 mode:
  102:  */
  103:         unsigned short es, __esh;
  104:         unsigned short ds, __dsh;
  105:         unsigned short fs, __fsh;
  106:         unsigned short gs, __gsh;
  107: };
  108: 
  109: struct target_revectored_struct {
  110:         abi_ulong __map[8];                    /* 256 bits */
  111: };
  112: 
  113: struct target_vm86_struct {
  114:         struct target_vm86_regs regs;
  115:         abi_ulong flags;
  116:         abi_ulong screen_bitmap;
  117:         abi_ulong cpu_type;
  118:         struct target_revectored_struct int_revectored;
  119:         struct target_revectored_struct int21_revectored;
  120: };
  121: 
  122: /*
  123:  * flags masks
  124:  */
  125: #define TARGET_VM86_SCREEN_BITMAP       0x0001
  126: 
  127: struct target_vm86plus_info_struct {
  128:         abi_ulong flags;
  129: #define TARGET_force_return_for_pic (1 << 0)
  130: #define TARGET_vm86dbg_active       (1 << 1)  /* for debugger */
  131: #define TARGET_vm86dbg_TFpendig     (1 << 2)  /* for debugger */
  132: #define TARGET_is_vm86pus           (1 << 31) /* for vm86 internal use */
  133:         unsigned char vm86dbg_intxxtab[32];   /* for debugger */
  134: };
  135: 
  136: struct target_vm86plus_struct {
  137:         struct target_vm86_regs regs;
  138:         abi_ulong flags;
  139:         abi_ulong screen_bitmap;
  140:         abi_ulong cpu_type;
  141:         struct target_revectored_struct int_revectored;
  142:         struct target_revectored_struct int21_revectored;
  143:         struct target_vm86plus_info_struct vm86plus;
  144: };
  145: 
  146: #define UNAME_MACHINE "i686"
Syntax (Markdown)