root / linux-user / x86_64 / syscall.h @ f97572e5
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 |