symbian-qemu-0.9.1-12/qemu-symbian-svp/linux-user/x86_64/syscall.h
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     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