Statistics
| Branch: | Revision:

root / bsd-user / x86_64 / syscall.h @ 31fc12df

History | View | Annotate | Download (2.3 kB)

1
#define __USER_CS        (0x33)
2
#define __USER_DS        (0x2B)
3

    
4
struct target_pt_regs {
5
        abi_ulong r15;
6
        abi_ulong r14;
7
        abi_ulong r13;
8
        abi_ulong r12;
9
        abi_ulong rbp;
10
        abi_ulong rbx;
11
/* arguments: non interrupts/non tracing syscalls only save upto here*/
12
         abi_ulong r11;
13
        abi_ulong r10;
14
        abi_ulong r9;
15
        abi_ulong r8;
16
        abi_ulong rax;
17
        abi_ulong rcx;
18
        abi_ulong rdx;
19
        abi_ulong rsi;
20
        abi_ulong rdi;
21
        abi_ulong orig_rax;
22
/* end of arguments */
23
/* cpu exception frame or undefined */
24
        abi_ulong rip;
25
        abi_ulong cs;
26
        abi_ulong eflags;
27
        abi_ulong rsp;
28
        abi_ulong ss;
29
/* top of stack page */
30
};
31

    
32
/* Maximum number of LDT entries supported. */
33
#define TARGET_LDT_ENTRIES        8192
34
/* The size of each LDT entry. */
35
#define TARGET_LDT_ENTRY_SIZE        8
36

    
37
#define TARGET_GDT_ENTRIES 16
38
#define TARGET_GDT_ENTRY_TLS_ENTRIES 3
39
#define TARGET_GDT_ENTRY_TLS_MIN 12
40
#define TARGET_GDT_ENTRY_TLS_MAX 14
41

    
42
#if 0 // Redefine this
43
struct target_modify_ldt_ldt_s {
44
        unsigned int  entry_number;
45
        abi_ulong     base_addr;
46
        unsigned int  limit;
47
        unsigned int  seg_32bit:1;
48
        unsigned int  contents:2;
49
        unsigned int  read_exec_only:1;
50
        unsigned int  limit_in_pages:1;
51
        unsigned int  seg_not_present:1;
52
        unsigned int  useable:1;
53
        unsigned int  lm:1;
54
};
55
#else
56
struct target_modify_ldt_ldt_s {
57
        unsigned int  entry_number;
58
        abi_ulong     base_addr;
59
        unsigned int  limit;
60
        unsigned int flags;
61
};
62
#endif
63

    
64
struct target_ipc64_perm
65
{
66
        int                key;
67
        uint32_t        uid;
68
        uint32_t        gid;
69
        uint32_t        cuid;
70
        uint32_t        cgid;
71
        unsigned short                mode;
72
        unsigned short                __pad1;
73
        unsigned short                seq;
74
        unsigned short                __pad2;
75
        abi_ulong                __unused1;
76
        abi_ulong                __unused2;
77
};
78

    
79
struct target_msqid64_ds {
80
        struct target_ipc64_perm msg_perm;
81
        unsigned int msg_stime;        /* last msgsnd time */
82
        unsigned int msg_rtime;        /* last msgrcv time */
83
        unsigned int msg_ctime;        /* last change time */
84
        abi_ulong  msg_cbytes;        /* current number of bytes on queue */
85
        abi_ulong  msg_qnum;        /* number of messages in queue */
86
        abi_ulong  msg_qbytes;        /* max number of bytes on queue */
87
        unsigned int msg_lspid;        /* pid of last msgsnd */
88
        unsigned int msg_lrpid;        /* last receive pid */
89
        abi_ulong  __unused4;
90
        abi_ulong  __unused5;
91
};
92

    
93
#define UNAME_MACHINE "x86_64"
94

    
95
#define TARGET_ARCH_SET_GS 0x1001
96
#define TARGET_ARCH_SET_FS 0x1002
97
#define TARGET_ARCH_GET_FS 0x1003
98
#define TARGET_ARCH_GET_GS 0x1004