]>
git.ipfire.org Git - thirdparty/qemu.git/blob - linux-user/ppc64/syscall.h
2 * PPC emulation for qemu: syscall definitions.
4 * Copyright (c) 2003 Jocelyn Mayer
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.
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.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 /* XXX: ABSOLUTELY BUGGY:
22 * for now, this is quite just a cut-and-paste from i386 target...
25 /* default linux values for the selectors */
28 struct target_pt_regs
{
29 unsigned long gpr
[32];
32 unsigned long orig_gpr3
; /* Used for restarting system calls */
37 unsigned long mq
; /* 601 only (not used at present) */
38 /* Used on APUS to hold IPL value. */
39 unsigned long trap
; /* Reason for being here */
40 unsigned long dar
; /* Fault registers */
42 unsigned long result
; /* Result of a system call */
46 struct target_revectored_struct
{
47 target_ulong __map
[8]; /* 256 bits */
56 #define TARGET_SEMOP 1
57 #define TARGET_SEMGET 2
58 #define TARGET_SEMCTL 3
59 #define TARGET_MSGSND 11
60 #define TARGET_MSGRCV 12
61 #define TARGET_MSGGET 13
62 #define TARGET_MSGCTL 14
63 #define TARGET_SHMAT 21
64 #define TARGET_SHMDT 22
65 #define TARGET_SHMGET 23
66 #define TARGET_SHMCTL 24
68 struct target_msgbuf
{
73 struct target_ipc_kludge
{
74 unsigned int msgp
; /* Really (struct msgbuf *) */
78 struct target_ipc_perm
{
88 struct target_msqid_ds
{
89 struct target_ipc_perm msg_perm
;
90 unsigned int msg_first
; /* really struct target_msg* */
91 unsigned int msg_last
; /* really struct target_msg* */
92 unsigned int msg_stime
; /* really target_time_t */
93 unsigned int msg_rtime
; /* really target_time_t */
94 unsigned int msg_ctime
; /* really target_time_t */
95 unsigned int wwait
; /* really struct wait_queue* */
96 unsigned int rwait
; /* really struct wait_queue* */
97 unsigned short msg_cbytes
;
98 unsigned short msg_qnum
;
99 unsigned short msg_qbytes
;
100 unsigned short msg_lspid
;
101 unsigned short msg_lrpid
;
104 struct target_shmid_ds
{
105 struct target_ipc_perm shm_perm
;
107 unsigned int shm_atime
; /* really target_time_t */
108 unsigned int shm_dtime
; /* really target_time_t */
109 unsigned int shm_ctime
; /* really target_time_t */
110 unsigned short shm_cpid
;
111 unsigned short shm_lpid
;
113 unsigned short shm_npages
;
114 unsigned long *shm_pages
;
115 void *attaches
; /* really struct shm_desc * */
118 #define TARGET_IPC_RMID 0
119 #define TARGET_IPC_SET 1
120 #define TARGET_IPC_STAT 2
124 unsigned int buf
; /* really struct semid_ds * */
125 unsigned int array
; /* really unsigned short * */
126 unsigned int __buf
; /* really struct seminfo * */
127 unsigned int __pad
; /* really void* */
130 #define UNAME_MACHINE "ppc"