xref: /openbmc/qemu/linux-user/ppc/target_syscall.h (revision 1be5a765c08cee3a9587c8a8d3fc2ea247b13f9c)
1460c579fSLluís Vilanova /*
2460c579fSLluís Vilanova  *  PPC emulation for qemu: syscall definitions.
3460c579fSLluís Vilanova  *
4460c579fSLluís Vilanova  *  Copyright (c) 2003 Jocelyn Mayer
5460c579fSLluís Vilanova  *
6460c579fSLluís Vilanova  * This library is free software; you can redistribute it and/or
7460c579fSLluís Vilanova  * modify it under the terms of the GNU Lesser General Public
8460c579fSLluís Vilanova  * License as published by the Free Software Foundation; either
91c79145fSChetan Pant  * version 2.1 of the License, or (at your option) any later version.
10460c579fSLluís Vilanova  *
11460c579fSLluís Vilanova  * This library is distributed in the hope that it will be useful,
12460c579fSLluís Vilanova  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13460c579fSLluís Vilanova  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14460c579fSLluís Vilanova  * Lesser General Public License for more details.
15460c579fSLluís Vilanova  *
16460c579fSLluís Vilanova  * You should have received a copy of the GNU Lesser General Public
17460c579fSLluís Vilanova  * License along with this library; if not, see <http://www.gnu.org/licenses/>.
18460c579fSLluís Vilanova  */
19460c579fSLluís Vilanova 
203622634bSMarkus Armbruster #ifndef PPC_TARGET_SYSCALL_H
213622634bSMarkus Armbruster #define PPC_TARGET_SYSCALL_H
22460c579fSLluís Vilanova 
23460c579fSLluís Vilanova /* XXX: ABSOLUTELY BUGGY:
24460c579fSLluís Vilanova  * for now, this is quite just a cut-and-paste from i386 target...
25460c579fSLluís Vilanova  */
26460c579fSLluís Vilanova 
27460c579fSLluís Vilanova /* default linux values for the selectors */
28460c579fSLluís Vilanova #define __USER_DS	(1)
29460c579fSLluís Vilanova 
30460c579fSLluís Vilanova struct target_pt_regs {
31460c579fSLluís Vilanova 	abi_ulong gpr[32];
32460c579fSLluís Vilanova 	abi_ulong nip;
33460c579fSLluís Vilanova 	abi_ulong msr;
34460c579fSLluís Vilanova 	abi_ulong orig_gpr3;	/* Used for restarting system calls */
35460c579fSLluís Vilanova 	abi_ulong ctr;
36460c579fSLluís Vilanova 	abi_ulong link;
37460c579fSLluís Vilanova 	abi_ulong xer;
38460c579fSLluís Vilanova 	abi_ulong ccr;
3974154d7eSThomas Huth #if defined(TARGET_PPC64)
40460c579fSLluís Vilanova         abi_ulong softe;
41460c579fSLluís Vilanova #else
42460c579fSLluís Vilanova 	abi_ulong mq;		/* 601 only (not used at present) */
43460c579fSLluís Vilanova #endif
44460c579fSLluís Vilanova 					/* Used on APUS to hold IPL value. */
45460c579fSLluís Vilanova 	abi_ulong trap;		/* Reason for being here */
46460c579fSLluís Vilanova 	abi_ulong dar;		/* Fault registers */
47460c579fSLluís Vilanova 	abi_ulong dsisr;
48460c579fSLluís Vilanova 	abi_ulong result; 		/* Result of a system call */
49460c579fSLluís Vilanova };
50460c579fSLluís Vilanova 
51460c579fSLluís Vilanova /* ioctls */
52460c579fSLluís Vilanova struct target_revectored_struct {
53460c579fSLluís Vilanova 	abi_ulong __map[8];			/* 256 bits */
54460c579fSLluís Vilanova };
55460c579fSLluís Vilanova 
56460c579fSLluís Vilanova 
57460c579fSLluís Vilanova /*
58460c579fSLluís Vilanova  * flags masks
59460c579fSLluís Vilanova  */
60460c579fSLluís Vilanova 
6174154d7eSThomas Huth #if defined(TARGET_PPC64)
62*ee3eb3a7SMarc-André Lureau #if TARGET_BIG_ENDIAN
63460c579fSLluís Vilanova #define UNAME_MACHINE "ppc64"
64460c579fSLluís Vilanova #else
65460c579fSLluís Vilanova #define UNAME_MACHINE "ppc64le"
66460c579fSLluís Vilanova #endif
67460c579fSLluís Vilanova #else
68460c579fSLluís Vilanova #define UNAME_MACHINE "ppc"
69460c579fSLluís Vilanova #endif
70460c579fSLluís Vilanova #define UNAME_MINIMUM_RELEASE "2.6.32"
71460c579fSLluís Vilanova 
72460c579fSLluís Vilanova #define TARGET_CLONE_BACKWARDS
73460c579fSLluís Vilanova 
7402e5d7d7SFilip Bozuta #define TARGET_MCL_CURRENT 0x2000
7502e5d7d7SFilip Bozuta #define TARGET_MCL_FUTURE  0x4000
7602e5d7d7SFilip Bozuta #define TARGET_MCL_ONFAULT 0x8000
775457dc9eSLaurent Vivier #define TARGET_WANT_NI_OLD_SELECT
78460c579fSLluís Vilanova 
793622634bSMarkus Armbruster #endif /* PPC_TARGET_SYSCALL_H */
80