This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Add ipc.h for aarch64



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;
+  };






Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]