mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-30 00:31:08 +00:00
1e5834c38a
Some architectures support the old-style IPC and require IPC_64 equal to 0x100 to be passed along SysV IPC syscalls, while new architectures should default to new IPC version (without the flags being set). This patch refactor current ipc_priv.h Linux headers in two directions: - Remove cross platform references (for instance alpha including powerpc definition) and add required definition for each required port. The idea is to avoid tie one architecture definition with another and make platform change independent. - Move all common definitions (the ipc syscall commands) on a common header, ipc_ops.h. * sysdeps/unix/sysv/linux/aarch64/ipc_priv.h: New file. * sysdeps/unix/sysv/linux/alpha/ipc_priv.h: Avoid included other arch definition and define its own. * sysdeps/unix/sysv/linux/ipc_ops.h: New file. * sysdeps/unix/sysv/linux/x86_64/ipc_priv.h: Likewise. * sysdeps/unix/sysv/linux/sparc/sparc64/ipc_priv.h: Likewise. * sysdeps/unix/sysv/linux/mips/ipc_priv.h: Remove file. * sysdeps/unix/sysv/linux/mips/mips64/ipc_priv.h: New file. * sysdeps/unix/sysv/linux/ipc_priv.h: Move ipc syscall operation definitions to common header. * sysdeps/unix/sysv/linux/powerpc/ipc_priv.h: Use common syscall operation from ipc_ops.h.
40 lines
1.4 KiB
C
40 lines
1.4 KiB
C
/* Old SysV permission definition for Linux. Default version.
|
|
Copyright (C) 1995-2016 Free Software Foundation, Inc.
|
|
This file is part of the GNU C Library.
|
|
|
|
The GNU C 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.1 of the License, or (at your option) any later version.
|
|
|
|
The GNU C 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 the GNU C Library; if not, see
|
|
<http://www.gnu.org/licenses/>. */
|
|
|
|
#include <sys/ipc.h> /* For __key_t */
|
|
|
|
#define __IPC_64 0x100
|
|
|
|
struct __old_ipc_perm
|
|
{
|
|
__key_t __key; /* Key. */
|
|
unsigned short int uid; /* Owner's user ID. */
|
|
unsigned short int gid; /* Owner's group ID. */
|
|
unsigned short int cuid; /* Creator's user ID. */
|
|
unsigned short int cgid; /* Creator's group ID. */
|
|
unsigned short int mode; /* Read/write permission. */
|
|
unsigned short int __seq; /* Sequence number. */
|
|
};
|
|
|
|
#define SEMCTL_ARG_ADDRESS(__arg) &__arg.array
|
|
|
|
#define MSGRCV_ARGS(__msgp, __msgtyp) \
|
|
((long int []){ (long int) __msgp, __msgtyp })
|
|
|
|
#include <ipc_ops.h>
|