1*55a2b163SPetar Jovanovic /* 2*55a2b163SPetar Jovanovic * X86-64 specific structures for linux-user 3*55a2b163SPetar Jovanovic * 4*55a2b163SPetar Jovanovic * Copyright (c) 2013 Fabrice Bellard 5*55a2b163SPetar Jovanovic * 6*55a2b163SPetar Jovanovic * This library is free software; you can redistribute it and/or 7*55a2b163SPetar Jovanovic * modify it under the terms of the GNU Lesser General Public 8*55a2b163SPetar Jovanovic * License as published by the Free Software Foundation; either 9*55a2b163SPetar Jovanovic * version 2 of the License, or (at your option) any later version. 10*55a2b163SPetar Jovanovic * 11*55a2b163SPetar Jovanovic * This library is distributed in the hope that it will be useful, 12*55a2b163SPetar Jovanovic * but WITHOUT ANY WARRANTY; without even the implied warranty of 13*55a2b163SPetar Jovanovic * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14*55a2b163SPetar Jovanovic * Lesser General Public License for more details. 15*55a2b163SPetar Jovanovic * 16*55a2b163SPetar Jovanovic * You should have received a copy of the GNU Lesser General Public 17*55a2b163SPetar Jovanovic * License along with this library; if not, see <http://www.gnu.org/licenses/>. 18*55a2b163SPetar Jovanovic */ 19*55a2b163SPetar Jovanovic #ifndef TARGET_STRUCTS_H 20*55a2b163SPetar Jovanovic #define TARGET_STRUCTS_H 21*55a2b163SPetar Jovanovic 22*55a2b163SPetar Jovanovic struct target_ipc_perm { 23*55a2b163SPetar Jovanovic abi_int __key; /* Key. */ 24*55a2b163SPetar Jovanovic abi_uint uid; /* Owner's user ID. */ 25*55a2b163SPetar Jovanovic abi_uint gid; /* Owner's group ID. */ 26*55a2b163SPetar Jovanovic abi_uint cuid; /* Creator's user ID. */ 27*55a2b163SPetar Jovanovic abi_uint cgid; /* Creator's group ID. */ 28*55a2b163SPetar Jovanovic abi_ushort mode; /* Read/write permission. */ 29*55a2b163SPetar Jovanovic abi_ushort __pad1; 30*55a2b163SPetar Jovanovic abi_ushort __seq; /* Sequence number. */ 31*55a2b163SPetar Jovanovic abi_ushort __pad2; 32*55a2b163SPetar Jovanovic abi_ulong __unused1; 33*55a2b163SPetar Jovanovic abi_ulong __unused2; 34*55a2b163SPetar Jovanovic }; 35*55a2b163SPetar Jovanovic 36*55a2b163SPetar Jovanovic struct target_shmid_ds { 37*55a2b163SPetar Jovanovic struct target_ipc_perm shm_perm; /* operation permission struct */ 38*55a2b163SPetar Jovanovic abi_long shm_segsz; /* size of segment in bytes */ 39*55a2b163SPetar Jovanovic abi_ulong shm_atime; /* time of last shmat() */ 40*55a2b163SPetar Jovanovic #if TARGET_ABI_BITS == 32 41*55a2b163SPetar Jovanovic abi_ulong __unused1; 42*55a2b163SPetar Jovanovic #endif 43*55a2b163SPetar Jovanovic abi_ulong shm_dtime; /* time of last shmdt() */ 44*55a2b163SPetar Jovanovic #if TARGET_ABI_BITS == 32 45*55a2b163SPetar Jovanovic abi_ulong __unused2; 46*55a2b163SPetar Jovanovic #endif 47*55a2b163SPetar Jovanovic abi_ulong shm_ctime; /* time of last change by shmctl() */ 48*55a2b163SPetar Jovanovic #if TARGET_ABI_BITS == 32 49*55a2b163SPetar Jovanovic abi_ulong __unused3; 50*55a2b163SPetar Jovanovic #endif 51*55a2b163SPetar Jovanovic abi_int shm_cpid; /* pid of creator */ 52*55a2b163SPetar Jovanovic abi_int shm_lpid; /* pid of last shmop */ 53*55a2b163SPetar Jovanovic abi_ulong shm_nattch; /* number of current attaches */ 54*55a2b163SPetar Jovanovic abi_ulong __unused4; 55*55a2b163SPetar Jovanovic abi_ulong __unused5; 56*55a2b163SPetar Jovanovic }; 57*55a2b163SPetar Jovanovic 58*55a2b163SPetar Jovanovic #endif 59