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