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.1 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 PPC_TARGET_SYSCALL_H 21 #define PPC_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 57 /* 58 * flags masks 59 */ 60 61 #if defined(TARGET_PPC64) && !defined(TARGET_ABI32) 62 #ifdef TARGET_WORDS_BIGENDIAN 63 #define UNAME_MACHINE "ppc64" 64 #else 65 #define UNAME_MACHINE "ppc64le" 66 #endif 67 #else 68 #define UNAME_MACHINE "ppc" 69 #endif 70 #define UNAME_MINIMUM_RELEASE "2.6.32" 71 72 #define TARGET_CLONE_BACKWARDS 73 74 #define TARGET_MCL_CURRENT 0x2000 75 #define TARGET_MCL_FUTURE 0x4000 76 #define TARGET_MCL_ONFAULT 0x8000 77 #define TARGET_WANT_NI_OLD_SELECT 78 79 #endif /* PPC_TARGET_SYSCALL_H */ 80