From 266ae826f8660d485daba069a921ec1ebc68a46d Mon Sep 17 00:00:00 2001 From: Joakim Tjernlund Date: Sun, 24 Apr 2005 19:29:39 +0000 Subject: Fix bug 222: Move all archs to newer __IPC_64 interface for {msg,sem,shm}ctl syscalls. This won't work on 2.2 kernels(I think). --- libc/sysdeps/linux/common/bits/ipc.h | 26 +++++++++++++------------- libc/sysdeps/linux/common/bits/msq.h | 31 ++++++++++++++++--------------- 2 files changed, 29 insertions(+), 28 deletions(-) (limited to 'libc/sysdeps/linux/common') diff --git a/libc/sysdeps/linux/common/bits/ipc.h b/libc/sysdeps/linux/common/bits/ipc.h index 7103365ac..7cd2fd0c5 100644 --- a/libc/sysdeps/linux/common/bits/ipc.h +++ b/libc/sysdeps/linux/common/bits/ipc.h @@ -35,22 +35,22 @@ # define IPC_INFO 3 /* See ipcs. */ #endif -/* Type of a SYSV IPC key. */ -typedef int __kernel_key_t; - /* Special key values. */ #define IPC_PRIVATE ((__key_t) 0) /* Private key. */ - /* Data structure used to pass permission information to IPC operations. */ struct ipc_perm -{ - __kernel_key_t __key; - __kernel_uid_t uid; - __kernel_gid_t gid; - __kernel_uid_t cuid; - __kernel_gid_t cgid; - __kernel_mode_t mode; - unsigned long seq; -}; + { + __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 short int mode; /* Read/write permission. */ + unsigned short int __pad1; + unsigned short int __seq; /* Sequence number. */ + unsigned short int __pad2; + unsigned long int __unused1; + unsigned long int __unused2; + }; diff --git a/libc/sysdeps/linux/common/bits/msq.h b/libc/sysdeps/linux/common/bits/msq.h index c5b3ca8df..cd4624301 100644 --- a/libc/sysdeps/linux/common/bits/msq.h +++ b/libc/sysdeps/linux/common/bits/msq.h @@ -32,23 +32,24 @@ typedef unsigned long int msgqnum_t; typedef unsigned long int msglen_t; - /* Structure of record for one message inside the kernel. The type `struct msg' is opaque. */ -struct msqid_ds { - struct ipc_perm msg_perm; - struct msg *msg_first; /* first message on queue,unused */ - struct msg *msg_last; /* last message in queue,unused */ - __kernel_time_t msg_stime; /* last msgsnd time */ - __kernel_time_t msg_rtime; /* last msgrcv time */ - __kernel_time_t msg_ctime; /* last change time */ - unsigned long msg_lcbytes; /* Reuse junk fields for 32 bit */ - unsigned long msg_lqbytes; /* ditto */ - unsigned short __msg_cbytes; /* current number of bytes on queue */ - unsigned short msg_qnum; /* number of messages in queue */ - unsigned short msg_qbytes; /* max number of bytes on queue */ - __kernel_ipc_pid_t msg_lspid; /* pid of last msgsnd */ - __kernel_ipc_pid_t msg_lrpid; /* last receive pid */ +struct msqid_ds +{ + struct ipc_perm msg_perm; /* structure describing operation permission */ + __time_t msg_stime; /* time of last msgsnd command */ + unsigned long int __unused1; + __time_t msg_rtime; /* time of last msgrcv command */ + unsigned long int __unused2; + __time_t msg_ctime; /* time of last change */ + unsigned long int __unused3; + unsigned long int __msg_cbytes; /* current number of bytes on queue */ + msgqnum_t msg_qnum; /* number of messages currently on queue */ + msglen_t msg_qbytes; /* max number of bytes allowed on queue */ + __pid_t msg_lspid; /* pid of last msgsnd() */ + __pid_t msg_lrpid; /* pid of last msgrcv() */ + unsigned long int __unused4; + unsigned long int __unused5; }; #ifdef __USE_MISC -- cgit v1.2.3