This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: [PATCH] Add ipc.h for aarch64
- From: Alan Hayward <alan dot hayward at arm dot com>
- To: Marcus Shawcroft <marcus dot shawcroft at gmail dot com>
- Cc: GNU C Library <libc-alpha at sourceware dot org>
- Date: Fri, 24 Oct 2014 13:56:08 +0100
- Subject: Re: [PATCH] Add ipc.h for aarch64
- Authentication-results: sourceware.org; auth=none
- References: <D06BD949 dot 1758%alan dot hayward at arm dot com> <CAFqB+PzTxktDin8+Ev6tTvcwCumnMn=ouA_QfD_NPkcFhYTgiQ at mail dot gmail dot com>
On 21/10/2014 10:52, "Marcus Shawcroft" <marcus.shawcroft@gmail.com> wrote:
>On 21 October 2014 09:35, Alan Hayward <alan.hayward@arm.com> wrote:
>> Copied sysdeps/unix/sysv/linux/mips/bits/ipc.h to (new file)
>
>We are currently using sysdeps/unix/sysv/linux/bits/ipc.h, I'd prefer
>we took a copy of that file and changed:
>
>unsigned short int mode; /* Read/write permission. */
>unsigned short int __pad1;
>->
>unsigned int mode; /* Read/write permission. */
>
>Rather than take the other changes present in the mips file.
>
>Cheers
>/Marcus
>
As requested, this version is a copy of the common version of ipc.h,
instead of the mips version.
The diff against the common version:
$ diff ./sysdeps/unix/sysv/linux/bits/ipc.h
./sysdeps/unix/sysv/linux/aarch64/bits/ipc.h
49,50c49
< unsigned short int mode; /* Read/write permission. */
< unsigned short int __pad1;
---
> unsigned int mode; /* Read/write permission. */
52c51
< unsigned short int __pad2;
---
> unsigned short int __pad1;
Full patch:
Changelog:
2014-10-21 Alan Hayward <alan.hayward@arm.com>
* sysdeps/unix/sysv/linux/aarch64/bits/ipc.h: New file.
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/ipc.h
b/sysdeps/unix/sysv/linux/aarch64/bits/ipc.h
new file mode 100644
index 0000000..aa50eb0
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/aarch64/bits/ipc.h
@@ -0,0 +1,54 @@
+/* Copyright (C) 1995-2014 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/>. */
+
+#ifndef _SYS_IPC_H
+# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
+#endif
+
+#include <bits/types.h>
+
+/* Mode bits for `msgget', `semget', and `shmget'. */
+#define IPC_CREAT 01000 /* Create key if key does not exist. */
+#define IPC_EXCL 02000 /* Fail if key exists. */
+#define IPC_NOWAIT 04000 /* Return error on wait. */
+
+/* Control commands for `msgctl', `semctl', and `shmctl'. */
+#define IPC_RMID 0 /* Remove identifier. */
+#define IPC_SET 1 /* Set `ipc_perm' options. */
+#define IPC_STAT 2 /* Get `ipc_perm' options. */
+#ifdef __USE_GNU
+# define IPC_INFO 3 /* See ipcs. */
+#endif
+
+/* Special key values. */
+#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
+
+
+/* Data structure used to pass permission information to IPC operations.
*/
+struct ipc_perm
+ {
+ __key_t __key; /* Key. */
+ __uid_t uid; /* Owner's user ID. */
+ __gid_t gid; /* Owner's group ID. */
+ __uid_t cuid; /* Creator's user ID. */
+ __gid_t cgid; /* Creator's group ID. */
+ unsigned int mode; /* Read/write permission. */
+ unsigned short int __seq; /* Sequence number. */
+ unsigned short int __pad1;
+ __syscall_ulong_t __glibc_reserved1;
+ __syscall_ulong_t __glibc_reserved2;
+ };