Statistics
| Branch: | Revision:

root / linux-user / x86_64 / syscall.h @ cb33da57

History | View | Annotate | Download (2.2 kB)

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

    
4
struct target_pt_regs {
5
        target_ulong r15;
6
        target_ulong r14;
7
        target_ulong r13;
8
        target_ulong r12;
9
        target_ulong rbp;
10
        target_ulong rbx;
11
/* arguments: non interrupts/non tracing syscalls only save upto here*/
12
         target_ulong r11;
13
        target_ulong r10;
14
        target_ulong r9;
15
        target_ulong r8;
16
        target_ulong rax;
17
        target_ulong rcx;
18
        target_ulong rdx;
19
        target_ulong rsi;
20
        target_ulong rdi;
21
        target_ulong orig_rax;
22
/* end of arguments */
23
/* cpu exception frame or undefined */
24
        target_ulong rip;
25
        target_ulong cs;
26
        target_ulong eflags;
27
        target_ulong rsp;
28
        target_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_ENTRY_TLS_ENTRIES 3
38
#define TARGET_GDT_ENTRY_TLS_MIN 12
39
#define TARGET_GDT_ENTRY_TLS_MAX 14
40

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

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

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

    
92
#define UNAME_MACHINE "x86_64"