1 /* 2 * PPC emulation for qemu: syscall definitions. 3 * 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 17 * License along with this library; if not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 #ifndef TARGET_SYSCALL_H 21 #define TARGET_SYSCALL_H 22 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 { 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 44 /* Used on APUS to hold IPL value. */ 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 */ 49 }; 50 51 /* ioctls */ 52 struct target_revectored_struct { 53 abi_ulong __map[8]; /* 256 bits */ 54 }; 55 56 /* Nasty hack: define a fake errno value for use by sigreturn. */ 57 #define TARGET_QEMU_ESIGRETURN 255 58 59 /* 60 * flags masks 61 */ 62 63 #if defined(TARGET_PPC64) && !defined(TARGET_ABI32) 64 #ifdef TARGET_WORDS_BIGENDIAN 65 #define UNAME_MACHINE "ppc64" 66 #else 67 #define UNAME_MACHINE "ppc64le" 68 #endif 69 #else 70 #define UNAME_MACHINE "ppc" 71 #endif 72 #define UNAME_MINIMUM_RELEASE "2.6.32" 73 74 #define TARGET_CLONE_BACKWARDS 75 76 #define TARGET_MINSIGSTKSZ 2048 77 #define TARGET_MLOCKALL_MCL_CURRENT 0x2000 78 #define TARGET_MLOCKALL_MCL_FUTURE 0x4000 79 80 #endif /* TARGET_SYSCALL_H */ 81