]>
Commit | Line | Data |
---|---|---|
79aceca5 FB |
1 | /* |
2 | * PPC emulation for qemu: syscall definitions. | |
5fafdf24 | 3 | * |
79aceca5 FB |
4 | * Copyright (c) 2003 Jocelyn Mayer |
5 | * | |
6 | * This library is free software; you can redistribute it and/or | |
7 | * modify it under the terms of the GNU Lesser General Public | |
8 | * License as published by the Free Software Foundation; either | |
9 | * version 2 of the License, or (at your option) any later version. | |
10 | * | |
11 | * This library is distributed in the hope that it will be useful, | |
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
14 | * Lesser General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU Lesser General Public | |
8167ee88 | 17 | * License along with this library; if not, see <http://www.gnu.org/licenses/>. |
79aceca5 FB |
18 | */ |
19 | ||
3622634b MA |
20 | #ifndef PPC_TARGET_SYSCALL_H |
21 | #define PPC_TARGET_SYSCALL_H | |
460c579f | 22 | |
79aceca5 FB |
23 | /* XXX: ABSOLUTELY BUGGY: |
24 | * for now, this is quite just a cut-and-paste from i386 target... | |
25 | */ | |
26 | ||
27 | /* default linux values for the selectors */ | |
28 | #define __USER_DS (1) | |
29 | ||
30 | struct target_pt_regs { | |
e32448e0 JM |
31 | abi_ulong gpr[32]; |
32 | abi_ulong nip; | |
33 | abi_ulong msr; | |
34 | abi_ulong orig_gpr3; /* Used for restarting system calls */ | |
35 | abi_ulong ctr; | |
36 | abi_ulong link; | |
37 | abi_ulong xer; | |
38 | abi_ulong ccr; | |
39 | #if defined(TARGET_PPC64) && !defined(TARGET_ABI32) | |
40 | abi_ulong softe; | |
41 | #else | |
42 | abi_ulong mq; /* 601 only (not used at present) */ | |
43 | #endif | |
79aceca5 | 44 | /* Used on APUS to hold IPL value. */ |
e32448e0 JM |
45 | abi_ulong trap; /* Reason for being here */ |
46 | abi_ulong dar; /* Fault registers */ | |
47 | abi_ulong dsisr; | |
48 | abi_ulong result; /* Result of a system call */ | |
79aceca5 FB |
49 | }; |
50 | ||
51 | /* ioctls */ | |
52 | struct target_revectored_struct { | |
992f48a0 | 53 | abi_ulong __map[8]; /* 256 bits */ |
79aceca5 FB |
54 | }; |
55 | ||
bcd4933a | 56 | |
79aceca5 FB |
57 | /* |
58 | * flags masks | |
59 | */ | |
60 | ||
f85e9a68 | 61 | #if defined(TARGET_PPC64) && !defined(TARGET_ABI32) |
d90b94cd | 62 | #ifdef TARGET_WORDS_BIGENDIAN |
f85e9a68 JM |
63 | #define UNAME_MACHINE "ppc64" |
64 | #else | |
d90b94cd DK |
65 | #define UNAME_MACHINE "ppc64le" |
66 | #endif | |
67 | #else | |
cf720db3 | 68 | #define UNAME_MACHINE "ppc" |
f85e9a68 | 69 | #endif |
cbc14e6f | 70 | #define UNAME_MINIMUM_RELEASE "2.6.32" |
4ce6243d PM |
71 | |
72 | #define TARGET_CLONE_BACKWARDS | |
0903c8be TM |
73 | |
74 | #define TARGET_MINSIGSTKSZ 2048 | |
6f6a4032 TM |
75 | #define TARGET_MLOCKALL_MCL_CURRENT 0x2000 |
76 | #define TARGET_MLOCKALL_MCL_FUTURE 0x4000 | |
5457dc9e | 77 | #define TARGET_WANT_NI_OLD_SELECT |
460c579f | 78 | |
3622634b | 79 | #endif /* PPC_TARGET_SYSCALL_H */ |