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/* XXX: ABSOLUTELY BUGGY: 21 * for now, this is quite just a cut-and-paste from i386 target... 22 */ 23 24/* default linux values for the selectors */ 25#define __USER_DS (1) 26 27struct target_pt_regs { 28 abi_ulong gpr[32]; 29 abi_ulong nip; 30 abi_ulong msr; 31 abi_ulong orig_gpr3; /* Used for restarting system calls */ 32 abi_ulong ctr; 33 abi_ulong link; 34 abi_ulong xer; 35 abi_ulong ccr; 36#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) 37 abi_ulong softe; 38#else 39 abi_ulong mq; /* 601 only (not used at present) */ 40#endif 41 /* Used on APUS to hold IPL value. */ 42 abi_ulong trap; /* Reason for being here */ 43 abi_ulong dar; /* Fault registers */ 44 abi_ulong dsisr; 45 abi_ulong result; /* Result of a system call */ 46}; 47 48/* ioctls */ 49struct target_revectored_struct { 50 abi_ulong __map[8]; /* 256 bits */ 51}; 52 53/* Nasty hack: define a fake errno value for use by sigreturn. */ 54#define TARGET_QEMU_ESIGRETURN 255 55 56/* 57 * flags masks 58 */ 59 60#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) 61#ifdef TARGET_WORDS_BIGENDIAN 62#define UNAME_MACHINE "ppc64" 63#else 64#define UNAME_MACHINE "ppc64le" 65#endif 66#else 67#define UNAME_MACHINE "ppc" 68#endif 69#define UNAME_MINIMUM_RELEASE "2.6.32" 70 71#define TARGET_CLONE_BACKWARDS 72 73#define TARGET_MINSIGSTKSZ 2048 74#define TARGET_MLOCKALL_MCL_CURRENT 0x2000 75#define TARGET_MLOCKALL_MCL_FUTURE 0x4000 76