Annotation of qemu/bsd-user/i386/syscall.h, revision 1.1.1.2

1.1       root        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: 
1.1.1.2 ! root      146: /* FreeBSD sysarch(2) */
        !           147: #define TARGET_FREEBSD_I386_GET_LDT    0
        !           148: #define TARGET_FREEBSD_I386_SET_LDT    1
        !           149:                                /* I386_IOPL */
        !           150: #define TARGET_FREEBSD_I386_GET_IOPERM 3
        !           151: #define TARGET_FREEBSD_I386_SET_IOPERM 4
        !           152:                                /* xxxxx */
        !           153: #define TARGET_FREEBSD_I386_VM86       6
        !           154: #define TARGET_FREEBSD_I386_GET_FSBASE 7
        !           155: #define TARGET_FREEBSD_I386_SET_FSBASE 8
        !           156: #define TARGET_FREEBSD_I386_GET_GSBASE 9
        !           157: #define TARGET_FREEBSD_I386_SET_GSBASE 10
        !           158: 
        !           159: 
1.1       root      160: #define UNAME_MACHINE "i386"
                    161: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.