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

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: 
        !           146: #define UNAME_MACHINE "i386"
        !           147: 

unix.superglobalmegacorp.com

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