linux-user: create target_structs header to place ipc_perm and shmid_ds
Creating target_structs header in linux-user/$arch/ and making target_ipc_perm and target_shmid_ds its first inhabitants. The struct defintions may/should be further fine-tuned by arch maintainers. Signed-off-by: Petar Jovanovic <petar.jovanovic@imgtec.com> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
This commit is contained in:
parent
9721cf2cd6
commit
55a2b1631f
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
* ARM AArch64 specific structures for linux-user
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Fabrice Bellard
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef TARGET_STRUCTS_H
|
||||||
|
#define TARGET_STRUCTS_H
|
||||||
|
|
||||||
|
struct target_ipc_perm {
|
||||||
|
abi_int __key; /* Key. */
|
||||||
|
abi_uint uid; /* Owner's user ID. */
|
||||||
|
abi_uint gid; /* Owner's group ID. */
|
||||||
|
abi_uint cuid; /* Creator's user ID. */
|
||||||
|
abi_uint cgid; /* Creator's group ID. */
|
||||||
|
abi_ushort mode; /* Read/write permission. */
|
||||||
|
abi_ushort __pad1;
|
||||||
|
abi_ushort __seq; /* Sequence number. */
|
||||||
|
abi_ushort __pad2;
|
||||||
|
abi_ulong __unused1;
|
||||||
|
abi_ulong __unused2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct target_shmid_ds {
|
||||||
|
struct target_ipc_perm shm_perm; /* operation permission struct */
|
||||||
|
abi_long shm_segsz; /* size of segment in bytes */
|
||||||
|
abi_ulong shm_atime; /* time of last shmat() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused1;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_dtime; /* time of last shmdt() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused2;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_ctime; /* time of last change by shmctl() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused3;
|
||||||
|
#endif
|
||||||
|
abi_int shm_cpid; /* pid of creator */
|
||||||
|
abi_int shm_lpid; /* pid of last shmop */
|
||||||
|
abi_ulong shm_nattch; /* number of current attaches */
|
||||||
|
abi_ulong __unused4;
|
||||||
|
abi_ulong __unused5;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,48 @@
|
||||||
|
/*
|
||||||
|
* Alpha specific structures for linux-user
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Fabrice Bellard
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef TARGET_STRUCTS_H
|
||||||
|
#define TARGET_STRUCTS_H
|
||||||
|
|
||||||
|
struct target_ipc_perm {
|
||||||
|
abi_int __key; /* Key. */
|
||||||
|
abi_uint uid; /* Owner's user ID. */
|
||||||
|
abi_uint gid; /* Owner's group ID. */
|
||||||
|
abi_uint cuid; /* Creator's user ID. */
|
||||||
|
abi_uint cgid; /* Creator's group ID. */
|
||||||
|
abi_uint mode; /* Read/write permission. */
|
||||||
|
abi_ushort __seq; /* Sequence number. */
|
||||||
|
abi_ushort __pad1;
|
||||||
|
abi_ulong __unused1;
|
||||||
|
abi_ulong __unused2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct target_shmid_ds {
|
||||||
|
struct target_ipc_perm shm_perm; /* operation permission struct */
|
||||||
|
abi_long shm_segsz; /* size of segment in bytes */
|
||||||
|
abi_ulong shm_atime; /* time of last shmat() */
|
||||||
|
abi_ulong shm_dtime; /* time of last shmdt() */
|
||||||
|
abi_ulong shm_ctime; /* time of last change by shmctl() */
|
||||||
|
abi_int shm_cpid; /* pid of creator */
|
||||||
|
abi_int shm_lpid; /* pid of last shmop */
|
||||||
|
abi_ulong shm_nattch; /* number of current attaches */
|
||||||
|
abi_ulong __unused1;
|
||||||
|
abi_ulong __unused2;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,52 @@
|
||||||
|
/*
|
||||||
|
* ARM specific structures for linux-user
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Fabrice Bellard
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef TARGET_STRUCTS_H
|
||||||
|
#define TARGET_STRUCTS_H
|
||||||
|
|
||||||
|
struct target_ipc_perm {
|
||||||
|
abi_int __key; /* Key. */
|
||||||
|
abi_uint uid; /* Owner's user ID. */
|
||||||
|
abi_uint gid; /* Owner's group ID. */
|
||||||
|
abi_uint cuid; /* Creator's user ID. */
|
||||||
|
abi_uint cgid; /* Creator's group ID. */
|
||||||
|
abi_ushort mode; /* Read/write permission. */
|
||||||
|
abi_ushort __pad1;
|
||||||
|
abi_ushort __seq; /* Sequence number. */
|
||||||
|
abi_ushort __pad2;
|
||||||
|
abi_ulong __unused1;
|
||||||
|
abi_ulong __unused2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct target_shmid_ds {
|
||||||
|
struct target_ipc_perm shm_perm; /* operation permission struct */
|
||||||
|
abi_long shm_segsz; /* size of segment in bytes */
|
||||||
|
abi_ulong shm_atime; /* time of last shmat() */
|
||||||
|
abi_ulong __unused1;
|
||||||
|
abi_ulong shm_dtime; /* time of last shmdt() */
|
||||||
|
abi_ulong __unused2;
|
||||||
|
abi_ulong shm_ctime; /* time of last change by shmctl() */
|
||||||
|
abi_ulong __unused3;
|
||||||
|
abi_int shm_cpid; /* pid of creator */
|
||||||
|
abi_int shm_lpid; /* pid of last shmop */
|
||||||
|
abi_ulong shm_nattch; /* number of current attaches */
|
||||||
|
abi_ulong __unused4;
|
||||||
|
abi_ulong __unused5;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
* CRIS specific structures for linux-user
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Fabrice Bellard
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef TARGET_STRUCTS_H
|
||||||
|
#define TARGET_STRUCTS_H
|
||||||
|
|
||||||
|
struct target_ipc_perm {
|
||||||
|
abi_int __key; /* Key. */
|
||||||
|
abi_uint uid; /* Owner's user ID. */
|
||||||
|
abi_uint gid; /* Owner's group ID. */
|
||||||
|
abi_uint cuid; /* Creator's user ID. */
|
||||||
|
abi_uint cgid; /* Creator's group ID. */
|
||||||
|
abi_ushort mode; /* Read/write permission. */
|
||||||
|
abi_ushort __pad1;
|
||||||
|
abi_ushort __seq; /* Sequence number. */
|
||||||
|
abi_ushort __pad2;
|
||||||
|
abi_ulong __unused1;
|
||||||
|
abi_ulong __unused2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct target_shmid_ds {
|
||||||
|
struct target_ipc_perm shm_perm; /* operation permission struct */
|
||||||
|
abi_long shm_segsz; /* size of segment in bytes */
|
||||||
|
abi_ulong shm_atime; /* time of last shmat() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused1;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_dtime; /* time of last shmdt() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused2;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_ctime; /* time of last change by shmctl() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused3;
|
||||||
|
#endif
|
||||||
|
abi_int shm_cpid; /* pid of creator */
|
||||||
|
abi_int shm_lpid; /* pid of last shmop */
|
||||||
|
abi_ulong shm_nattch; /* number of current attaches */
|
||||||
|
abi_ulong __unused4;
|
||||||
|
abi_ulong __unused5;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
* i386 specific structures for linux-user
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Fabrice Bellard
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef TARGET_STRUCTS_H
|
||||||
|
#define TARGET_STRUCTS_H
|
||||||
|
|
||||||
|
struct target_ipc_perm {
|
||||||
|
abi_int __key; /* Key. */
|
||||||
|
abi_uint uid; /* Owner's user ID. */
|
||||||
|
abi_uint gid; /* Owner's group ID. */
|
||||||
|
abi_uint cuid; /* Creator's user ID. */
|
||||||
|
abi_uint cgid; /* Creator's group ID. */
|
||||||
|
abi_ushort mode; /* Read/write permission. */
|
||||||
|
abi_ushort __pad1;
|
||||||
|
abi_ushort __seq; /* Sequence number. */
|
||||||
|
abi_ushort __pad2;
|
||||||
|
abi_ulong __unused1;
|
||||||
|
abi_ulong __unused2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct target_shmid_ds {
|
||||||
|
struct target_ipc_perm shm_perm; /* operation permission struct */
|
||||||
|
abi_long shm_segsz; /* size of segment in bytes */
|
||||||
|
abi_ulong shm_atime; /* time of last shmat() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused1;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_dtime; /* time of last shmdt() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused2;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_ctime; /* time of last change by shmctl() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused3;
|
||||||
|
#endif
|
||||||
|
abi_int shm_cpid; /* pid of creator */
|
||||||
|
abi_int shm_lpid; /* pid of last shmop */
|
||||||
|
abi_ulong shm_nattch; /* number of current attaches */
|
||||||
|
abi_ulong __unused4;
|
||||||
|
abi_ulong __unused5;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
* m68k specific structures for linux-user
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Fabrice Bellard
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef TARGET_STRUCTS_H
|
||||||
|
#define TARGET_STRUCTS_H
|
||||||
|
|
||||||
|
struct target_ipc_perm {
|
||||||
|
abi_int __key; /* Key. */
|
||||||
|
abi_uint uid; /* Owner's user ID. */
|
||||||
|
abi_uint gid; /* Owner's group ID. */
|
||||||
|
abi_uint cuid; /* Creator's user ID. */
|
||||||
|
abi_uint cgid; /* Creator's group ID. */
|
||||||
|
abi_ushort mode; /* Read/write permission. */
|
||||||
|
abi_ushort __pad1;
|
||||||
|
abi_ushort __seq; /* Sequence number. */
|
||||||
|
abi_ushort __pad2;
|
||||||
|
abi_ulong __unused1;
|
||||||
|
abi_ulong __unused2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct target_shmid_ds {
|
||||||
|
struct target_ipc_perm shm_perm; /* operation permission struct */
|
||||||
|
abi_long shm_segsz; /* size of segment in bytes */
|
||||||
|
abi_ulong shm_atime; /* time of last shmat() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused1;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_dtime; /* time of last shmdt() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused2;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_ctime; /* time of last change by shmctl() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused3;
|
||||||
|
#endif
|
||||||
|
abi_int shm_cpid; /* pid of creator */
|
||||||
|
abi_int shm_lpid; /* pid of last shmop */
|
||||||
|
abi_ulong shm_nattch; /* number of current attaches */
|
||||||
|
abi_ulong __unused4;
|
||||||
|
abi_ulong __unused5;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
* MicroBlaze specific structures for linux-user
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Fabrice Bellard
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef TARGET_STRUCTS_H
|
||||||
|
#define TARGET_STRUCTS_H
|
||||||
|
|
||||||
|
struct target_ipc_perm {
|
||||||
|
abi_int __key; /* Key. */
|
||||||
|
abi_uint uid; /* Owner's user ID. */
|
||||||
|
abi_uint gid; /* Owner's group ID. */
|
||||||
|
abi_uint cuid; /* Creator's user ID. */
|
||||||
|
abi_uint cgid; /* Creator's group ID. */
|
||||||
|
abi_ushort mode; /* Read/write permission. */
|
||||||
|
abi_ushort __pad1;
|
||||||
|
abi_ushort __seq; /* Sequence number. */
|
||||||
|
abi_ushort __pad2;
|
||||||
|
abi_ulong __unused1;
|
||||||
|
abi_ulong __unused2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct target_shmid_ds {
|
||||||
|
struct target_ipc_perm shm_perm; /* operation permission struct */
|
||||||
|
abi_long shm_segsz; /* size of segment in bytes */
|
||||||
|
abi_ulong shm_atime; /* time of last shmat() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused1;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_dtime; /* time of last shmdt() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused2;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_ctime; /* time of last change by shmctl() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused3;
|
||||||
|
#endif
|
||||||
|
abi_int shm_cpid; /* pid of creator */
|
||||||
|
abi_int shm_lpid; /* pid of last shmop */
|
||||||
|
abi_ulong shm_nattch; /* number of current attaches */
|
||||||
|
abi_ulong __unused4;
|
||||||
|
abi_ulong __unused5;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,48 @@
|
||||||
|
/*
|
||||||
|
* MIPS specific structures for linux-user
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Fabrice Bellard
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef TARGET_STRUCTS_H
|
||||||
|
#define TARGET_STRUCTS_H
|
||||||
|
|
||||||
|
struct target_ipc_perm {
|
||||||
|
abi_int __key; /* Key. */
|
||||||
|
abi_uint uid; /* Owner's user ID. */
|
||||||
|
abi_uint gid; /* Owner's group ID. */
|
||||||
|
abi_uint cuid; /* Creator's user ID. */
|
||||||
|
abi_uint cgid; /* Creator's group ID. */
|
||||||
|
abi_uint mode; /* Read/write permission. */
|
||||||
|
abi_ushort __seq; /* Sequence number. */
|
||||||
|
abi_ushort __pad1;
|
||||||
|
abi_ulong __unused1;
|
||||||
|
abi_ulong __unused2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct target_shmid_ds {
|
||||||
|
struct target_ipc_perm shm_perm; /* operation permission struct */
|
||||||
|
abi_long shm_segsz; /* size of segment in bytes */
|
||||||
|
abi_ulong shm_atime; /* time of last shmat() */
|
||||||
|
abi_ulong shm_dtime; /* time of last shmdt() */
|
||||||
|
abi_ulong shm_ctime; /* time of last change by shmctl() */
|
||||||
|
abi_int shm_cpid; /* pid of creator */
|
||||||
|
abi_int shm_lpid; /* pid of last shmop */
|
||||||
|
abi_ulong shm_nattch; /* number of current attaches */
|
||||||
|
abi_ulong __unused1;
|
||||||
|
abi_ulong __unused2;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -1 +1,19 @@
|
||||||
|
/*
|
||||||
|
* MIPS64 specific structures for linux-user
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Fabrice Bellard
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
#include "../mips/target_cpu.h"
|
#include "../mips/target_cpu.h"
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
#include "../mips/target_structs.h"
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
* OpenRISC specific structures for linux-user
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Fabrice Bellard
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef TARGET_STRUCTS_H
|
||||||
|
#define TARGET_STRUCTS_H
|
||||||
|
|
||||||
|
struct target_ipc_perm {
|
||||||
|
abi_int __key; /* Key. */
|
||||||
|
abi_uint uid; /* Owner's user ID. */
|
||||||
|
abi_uint gid; /* Owner's group ID. */
|
||||||
|
abi_uint cuid; /* Creator's user ID. */
|
||||||
|
abi_uint cgid; /* Creator's group ID. */
|
||||||
|
abi_ushort mode; /* Read/write permission. */
|
||||||
|
abi_ushort __pad1;
|
||||||
|
abi_ushort __seq; /* Sequence number. */
|
||||||
|
abi_ushort __pad2;
|
||||||
|
abi_ulong __unused1;
|
||||||
|
abi_ulong __unused2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct target_shmid_ds {
|
||||||
|
struct target_ipc_perm shm_perm; /* operation permission struct */
|
||||||
|
abi_long shm_segsz; /* size of segment in bytes */
|
||||||
|
abi_ulong shm_atime; /* time of last shmat() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused1;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_dtime; /* time of last shmdt() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused2;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_ctime; /* time of last change by shmctl() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused3;
|
||||||
|
#endif
|
||||||
|
abi_int shm_cpid; /* pid of creator */
|
||||||
|
abi_int shm_lpid; /* pid of last shmop */
|
||||||
|
abi_ulong shm_nattch; /* number of current attaches */
|
||||||
|
abi_ulong __unused4;
|
||||||
|
abi_ulong __unused5;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,60 @@
|
||||||
|
/*
|
||||||
|
* PowerPC specific structures for linux-user
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Fabrice Bellard
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef TARGET_STRUCTS_H
|
||||||
|
#define TARGET_STRUCTS_H
|
||||||
|
|
||||||
|
struct target_ipc_perm {
|
||||||
|
abi_int __key; /* Key. */
|
||||||
|
abi_uint uid; /* Owner's user ID. */
|
||||||
|
abi_uint gid; /* Owner's group ID. */
|
||||||
|
abi_uint cuid; /* Creator's user ID. */
|
||||||
|
abi_uint cgid; /* Creator's group ID. */
|
||||||
|
abi_uint mode; /* Read/write permission. */
|
||||||
|
uint32_t __seq; /* Sequence number. */
|
||||||
|
uint32_t __pad1;
|
||||||
|
uint64_t __unused1;
|
||||||
|
uint64_t __unused2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct target_shmid_ds {
|
||||||
|
struct target_ipc_perm shm_perm; /* operation permission struct */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_uint __unused1;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_atime; /* time of last shmat() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_uint __unused2;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_dtime; /* time of last shmdt() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_uint __unused3;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_ctime; /* time of last change by shmctl() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_uint __unused4;
|
||||||
|
#endif
|
||||||
|
abi_long shm_segsz; /* size of segment in bytes */
|
||||||
|
abi_int shm_cpid; /* pid of creator */
|
||||||
|
abi_int shm_lpid; /* pid of last shmop */
|
||||||
|
abi_ulong shm_nattch; /* number of current attaches */
|
||||||
|
abi_ulong __unused5;
|
||||||
|
abi_ulong __unused6;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -452,5 +452,6 @@ static inline void *lock_user_string(abi_ulong guest_addr)
|
||||||
*/
|
*/
|
||||||
#include "target_cpu.h"
|
#include "target_cpu.h"
|
||||||
#include "target_signal.h"
|
#include "target_signal.h"
|
||||||
|
#include "target_structs.h"
|
||||||
|
|
||||||
#endif /* QEMU_H */
|
#endif /* QEMU_H */
|
||||||
|
|
|
@ -0,0 +1,63 @@
|
||||||
|
/*
|
||||||
|
* S/390 specific structures for linux-user
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Fabrice Bellard
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef TARGET_STRUCTS_H
|
||||||
|
#define TARGET_STRUCTS_H
|
||||||
|
|
||||||
|
|
||||||
|
struct target_ipc_perm {
|
||||||
|
abi_int __key; /* Key. */
|
||||||
|
abi_uint uid; /* Owner's user ID. */
|
||||||
|
abi_uint gid; /* Owner's group ID. */
|
||||||
|
abi_uint cuid; /* Creator's user ID. */
|
||||||
|
abi_uint cgid; /* Creator's group ID. */
|
||||||
|
#if TARGET_ABI_BITS == 64
|
||||||
|
abi_uint mode; /* Read/write permission. */
|
||||||
|
#else
|
||||||
|
abi_ushort mode; /* Read/write permission. */
|
||||||
|
abi_ushort __pad1;
|
||||||
|
#endif
|
||||||
|
abi_ushort __seq; /* Sequence number. */
|
||||||
|
abi_ushort __pad2;
|
||||||
|
abi_ulong __unused1;
|
||||||
|
abi_ulong __unused2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct target_shmid_ds {
|
||||||
|
struct target_ipc_perm shm_perm; /* operation permission struct */
|
||||||
|
abi_long shm_segsz; /* size of segment in bytes */
|
||||||
|
abi_ulong shm_atime; /* time of last shmat() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused1;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_dtime; /* time of last shmdt() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused2;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_ctime; /* time of last change by shmctl() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused3;
|
||||||
|
#endif
|
||||||
|
abi_int shm_cpid; /* pid of creator */
|
||||||
|
abi_int shm_lpid; /* pid of last shmop */
|
||||||
|
abi_ulong shm_nattch; /* number of current attaches */
|
||||||
|
abi_ulong __unused4;
|
||||||
|
abi_ulong __unused5;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
* SH4 specific structures for linux-user
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Fabrice Bellard
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef TARGET_STRUCTS_H
|
||||||
|
#define TARGET_STRUCTS_H
|
||||||
|
|
||||||
|
struct target_ipc_perm {
|
||||||
|
abi_int __key; /* Key. */
|
||||||
|
abi_uint uid; /* Owner's user ID. */
|
||||||
|
abi_uint gid; /* Owner's group ID. */
|
||||||
|
abi_uint cuid; /* Creator's user ID. */
|
||||||
|
abi_uint cgid; /* Creator's group ID. */
|
||||||
|
abi_ushort mode; /* Read/write permission. */
|
||||||
|
abi_ushort __pad1;
|
||||||
|
abi_ushort __seq; /* Sequence number. */
|
||||||
|
abi_ushort __pad2;
|
||||||
|
abi_ulong __unused1;
|
||||||
|
abi_ulong __unused2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct target_shmid_ds {
|
||||||
|
struct target_ipc_perm shm_perm; /* operation permission struct */
|
||||||
|
abi_long shm_segsz; /* size of segment in bytes */
|
||||||
|
abi_ulong shm_atime; /* time of last shmat() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused1;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_dtime; /* time of last shmdt() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused2;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_ctime; /* time of last change by shmctl() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused3;
|
||||||
|
#endif
|
||||||
|
abi_int shm_cpid; /* pid of creator */
|
||||||
|
abi_int shm_lpid; /* pid of last shmop */
|
||||||
|
abi_ulong shm_nattch; /* number of current attaches */
|
||||||
|
abi_ulong __unused4;
|
||||||
|
abi_ulong __unused5;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,63 @@
|
||||||
|
/*
|
||||||
|
* SPARC specific structures for linux-user
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Fabrice Bellard
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef TARGET_STRUCTS_H
|
||||||
|
#define TARGET_STRUCTS_H
|
||||||
|
|
||||||
|
struct target_ipc_perm {
|
||||||
|
abi_int __key; /* Key. */
|
||||||
|
abi_uint uid; /* Owner's user ID. */
|
||||||
|
abi_uint gid; /* Owner's group ID. */
|
||||||
|
abi_uint cuid; /* Creator's user ID. */
|
||||||
|
abi_uint cgid; /* Creator's group ID. */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ushort __pad1;
|
||||||
|
abi_ushort mode; /* Read/write permission. */
|
||||||
|
abi_ushort __pad2;
|
||||||
|
#else
|
||||||
|
abi_ushort mode;
|
||||||
|
abi_ushort __pad1;
|
||||||
|
#endif
|
||||||
|
abi_ushort __seq; /* Sequence number. */
|
||||||
|
uint64_t __unused1;
|
||||||
|
uint64_t __unused2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct target_shmid_ds {
|
||||||
|
struct target_ipc_perm shm_perm; /* operation permission struct */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_uint __pad1;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_atime; /* time of last shmat() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_uint __pad2;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_dtime; /* time of last shmdt() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_uint __pad3;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_ctime; /* time of last change by shmctl() */
|
||||||
|
abi_long shm_segsz; /* size of segment in bytes */
|
||||||
|
abi_ulong shm_cpid; /* pid of creator */
|
||||||
|
abi_ulong shm_lpid; /* pid of last shmop */
|
||||||
|
abi_long shm_nattch; /* number of current attaches */
|
||||||
|
abi_ulong __unused1;
|
||||||
|
abi_ulong __unused2;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
* SPARC64 specific structures for linux-user
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Fabrice Bellard
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef TARGET_STRUCTS_H
|
||||||
|
#define TARGET_STRUCTS_H
|
||||||
|
|
||||||
|
struct target_ipc_perm {
|
||||||
|
abi_int __key; /* Key. */
|
||||||
|
abi_uint uid; /* Owner's user ID. */
|
||||||
|
abi_uint gid; /* Owner's group ID. */
|
||||||
|
abi_uint cuid; /* Creator's user ID. */
|
||||||
|
abi_uint cgid; /* Creator's group ID. */
|
||||||
|
abi_ushort mode; /* Read/write permission. */
|
||||||
|
abi_ushort __pad1;
|
||||||
|
abi_ushort __seq; /* Sequence number. */
|
||||||
|
abi_ushort __pad2;
|
||||||
|
abi_ulong __unused1;
|
||||||
|
abi_ulong __unused2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct target_shmid_ds {
|
||||||
|
struct target_ipc_perm shm_perm; /* operation permission struct */
|
||||||
|
abi_long shm_segsz; /* size of segment in bytes */
|
||||||
|
abi_ulong shm_atime; /* time of last shmat() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused1;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_dtime; /* time of last shmdt() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused2;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_ctime; /* time of last change by shmctl() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused3;
|
||||||
|
#endif
|
||||||
|
abi_int shm_cpid; /* pid of creator */
|
||||||
|
abi_int shm_lpid; /* pid of last shmop */
|
||||||
|
abi_ulong shm_nattch; /* number of current attaches */
|
||||||
|
abi_ulong __unused4;
|
||||||
|
abi_ulong __unused5;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -2436,21 +2436,6 @@ static struct shm_region {
|
||||||
abi_ulong size;
|
abi_ulong size;
|
||||||
} shm_regions[N_SHM_REGIONS];
|
} shm_regions[N_SHM_REGIONS];
|
||||||
|
|
||||||
struct target_ipc_perm
|
|
||||||
{
|
|
||||||
abi_long __key;
|
|
||||||
abi_ulong uid;
|
|
||||||
abi_ulong gid;
|
|
||||||
abi_ulong cuid;
|
|
||||||
abi_ulong cgid;
|
|
||||||
unsigned short int mode;
|
|
||||||
unsigned short int __pad1;
|
|
||||||
unsigned short int __seq;
|
|
||||||
unsigned short int __pad2;
|
|
||||||
abi_ulong __unused1;
|
|
||||||
abi_ulong __unused2;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct target_semid_ds
|
struct target_semid_ds
|
||||||
{
|
{
|
||||||
struct target_ipc_perm sem_perm;
|
struct target_ipc_perm sem_perm;
|
||||||
|
@ -2472,12 +2457,21 @@ static inline abi_long target_to_host_ipc_perm(struct ipc_perm *host_ip,
|
||||||
if (!lock_user_struct(VERIFY_READ, target_sd, target_addr, 1))
|
if (!lock_user_struct(VERIFY_READ, target_sd, target_addr, 1))
|
||||||
return -TARGET_EFAULT;
|
return -TARGET_EFAULT;
|
||||||
target_ip = &(target_sd->sem_perm);
|
target_ip = &(target_sd->sem_perm);
|
||||||
host_ip->__key = tswapal(target_ip->__key);
|
host_ip->__key = tswap32(target_ip->__key);
|
||||||
host_ip->uid = tswapal(target_ip->uid);
|
host_ip->uid = tswap32(target_ip->uid);
|
||||||
host_ip->gid = tswapal(target_ip->gid);
|
host_ip->gid = tswap32(target_ip->gid);
|
||||||
host_ip->cuid = tswapal(target_ip->cuid);
|
host_ip->cuid = tswap32(target_ip->cuid);
|
||||||
host_ip->cgid = tswapal(target_ip->cgid);
|
host_ip->cgid = tswap32(target_ip->cgid);
|
||||||
|
#if defined(TARGET_ALPHA) || defined(TARGET_MIPS) || defined(TARGET_PPC)
|
||||||
|
host_ip->mode = tswap32(target_ip->mode);
|
||||||
|
#else
|
||||||
host_ip->mode = tswap16(target_ip->mode);
|
host_ip->mode = tswap16(target_ip->mode);
|
||||||
|
#endif
|
||||||
|
#if defined(TARGET_PPC)
|
||||||
|
host_ip->__seq = tswap32(target_ip->__seq);
|
||||||
|
#else
|
||||||
|
host_ip->__seq = tswap16(target_ip->__seq);
|
||||||
|
#endif
|
||||||
unlock_user_struct(target_sd, target_addr, 0);
|
unlock_user_struct(target_sd, target_addr, 0);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -2491,12 +2485,21 @@ static inline abi_long host_to_target_ipc_perm(abi_ulong target_addr,
|
||||||
if (!lock_user_struct(VERIFY_WRITE, target_sd, target_addr, 0))
|
if (!lock_user_struct(VERIFY_WRITE, target_sd, target_addr, 0))
|
||||||
return -TARGET_EFAULT;
|
return -TARGET_EFAULT;
|
||||||
target_ip = &(target_sd->sem_perm);
|
target_ip = &(target_sd->sem_perm);
|
||||||
target_ip->__key = tswapal(host_ip->__key);
|
target_ip->__key = tswap32(host_ip->__key);
|
||||||
target_ip->uid = tswapal(host_ip->uid);
|
target_ip->uid = tswap32(host_ip->uid);
|
||||||
target_ip->gid = tswapal(host_ip->gid);
|
target_ip->gid = tswap32(host_ip->gid);
|
||||||
target_ip->cuid = tswapal(host_ip->cuid);
|
target_ip->cuid = tswap32(host_ip->cuid);
|
||||||
target_ip->cgid = tswapal(host_ip->cgid);
|
target_ip->cgid = tswap32(host_ip->cgid);
|
||||||
|
#if defined(TARGET_ALPHA) || defined(TARGET_MIPS) || defined(TARGET_PPC)
|
||||||
|
target_ip->mode = tswap32(host_ip->mode);
|
||||||
|
#else
|
||||||
target_ip->mode = tswap16(host_ip->mode);
|
target_ip->mode = tswap16(host_ip->mode);
|
||||||
|
#endif
|
||||||
|
#if defined(TARGET_PPC)
|
||||||
|
target_ip->__seq = tswap32(host_ip->__seq);
|
||||||
|
#else
|
||||||
|
target_ip->__seq = tswap16(host_ip->__seq);
|
||||||
|
#endif
|
||||||
unlock_user_struct(target_sd, target_addr, 1);
|
unlock_user_struct(target_sd, target_addr, 1);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -2927,29 +2930,6 @@ end:
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct target_shmid_ds
|
|
||||||
{
|
|
||||||
struct target_ipc_perm shm_perm;
|
|
||||||
abi_ulong shm_segsz;
|
|
||||||
abi_ulong shm_atime;
|
|
||||||
#if TARGET_ABI_BITS == 32
|
|
||||||
abi_ulong __unused1;
|
|
||||||
#endif
|
|
||||||
abi_ulong shm_dtime;
|
|
||||||
#if TARGET_ABI_BITS == 32
|
|
||||||
abi_ulong __unused2;
|
|
||||||
#endif
|
|
||||||
abi_ulong shm_ctime;
|
|
||||||
#if TARGET_ABI_BITS == 32
|
|
||||||
abi_ulong __unused3;
|
|
||||||
#endif
|
|
||||||
int shm_cpid;
|
|
||||||
int shm_lpid;
|
|
||||||
abi_ulong shm_nattch;
|
|
||||||
unsigned long int __unused4;
|
|
||||||
unsigned long int __unused5;
|
|
||||||
};
|
|
||||||
|
|
||||||
static inline abi_long target_to_host_shmid_ds(struct shmid_ds *host_sd,
|
static inline abi_long target_to_host_shmid_ds(struct shmid_ds *host_sd,
|
||||||
abi_ulong target_addr)
|
abi_ulong target_addr)
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
* UniCore32 specific structures for linux-user
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Fabrice Bellard
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef TARGET_STRUCTS_H
|
||||||
|
#define TARGET_STRUCTS_H
|
||||||
|
|
||||||
|
struct target_ipc_perm {
|
||||||
|
abi_int __key; /* Key. */
|
||||||
|
abi_uint uid; /* Owner's user ID. */
|
||||||
|
abi_uint gid; /* Owner's group ID. */
|
||||||
|
abi_uint cuid; /* Creator's user ID. */
|
||||||
|
abi_uint cgid; /* Creator's group ID. */
|
||||||
|
abi_ushort mode; /* Read/write permission. */
|
||||||
|
abi_ushort __pad1;
|
||||||
|
abi_ushort __seq; /* Sequence number. */
|
||||||
|
abi_ushort __pad2;
|
||||||
|
abi_ulong __unused1;
|
||||||
|
abi_ulong __unused2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct target_shmid_ds {
|
||||||
|
struct target_ipc_perm shm_perm; /* operation permission struct */
|
||||||
|
abi_long shm_segsz; /* size of segment in bytes */
|
||||||
|
abi_ulong shm_atime; /* time of last shmat() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused1;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_dtime; /* time of last shmdt() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused2;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_ctime; /* time of last change by shmctl() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused3;
|
||||||
|
#endif
|
||||||
|
abi_int shm_cpid; /* pid of creator */
|
||||||
|
abi_int shm_lpid; /* pid of last shmop */
|
||||||
|
abi_ulong shm_nattch; /* number of current attaches */
|
||||||
|
abi_ulong __unused4;
|
||||||
|
abi_ulong __unused5;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,58 @@
|
||||||
|
/*
|
||||||
|
* X86-64 specific structures for linux-user
|
||||||
|
*
|
||||||
|
* Copyright (c) 2013 Fabrice Bellard
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#ifndef TARGET_STRUCTS_H
|
||||||
|
#define TARGET_STRUCTS_H
|
||||||
|
|
||||||
|
struct target_ipc_perm {
|
||||||
|
abi_int __key; /* Key. */
|
||||||
|
abi_uint uid; /* Owner's user ID. */
|
||||||
|
abi_uint gid; /* Owner's group ID. */
|
||||||
|
abi_uint cuid; /* Creator's user ID. */
|
||||||
|
abi_uint cgid; /* Creator's group ID. */
|
||||||
|
abi_ushort mode; /* Read/write permission. */
|
||||||
|
abi_ushort __pad1;
|
||||||
|
abi_ushort __seq; /* Sequence number. */
|
||||||
|
abi_ushort __pad2;
|
||||||
|
abi_ulong __unused1;
|
||||||
|
abi_ulong __unused2;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct target_shmid_ds {
|
||||||
|
struct target_ipc_perm shm_perm; /* operation permission struct */
|
||||||
|
abi_long shm_segsz; /* size of segment in bytes */
|
||||||
|
abi_ulong shm_atime; /* time of last shmat() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused1;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_dtime; /* time of last shmdt() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused2;
|
||||||
|
#endif
|
||||||
|
abi_ulong shm_ctime; /* time of last change by shmctl() */
|
||||||
|
#if TARGET_ABI_BITS == 32
|
||||||
|
abi_ulong __unused3;
|
||||||
|
#endif
|
||||||
|
abi_int shm_cpid; /* pid of creator */
|
||||||
|
abi_int shm_lpid; /* pid of last shmop */
|
||||||
|
abi_ulong shm_nattch; /* number of current attaches */
|
||||||
|
abi_ulong __unused4;
|
||||||
|
abi_ulong __unused5;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue