qemu/linux-user/ppc/syscall.h
<<
>>
Prefs
   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