x86_64 Linux do not use multiplexing on ipc system calls.

Move struct ipc_perm definition to the MD path as it differs for 64 and
32 bit platform.

Differential Revision:	https://reviews.freebsd.org/D1068
Reviewed by:	trasz
This commit is contained in:
dchagin 2015-05-24 15:44:41 +00:00
parent a92a30f54d
commit dc4523e6a4
4 changed files with 22 additions and 12 deletions

View File

@ -573,6 +573,16 @@ union l_semun {
l_uintptr_t __pad;
} __packed;
struct l_ipc_perm {
l_key_t key;
l_uid16_t uid;
l_gid16_t gid;
l_uid16_t cuid;
l_gid16_t cgid;
l_ushort mode;
l_ushort seq;
};
/*
* Socket defines
*/

View File

@ -117,16 +117,6 @@ bsd_to_linux_shm_info( struct shm_info *bpp, struct l_shm_info *lpp)
lpp->swap_successes = bpp->swap_successes ;
}
struct l_ipc_perm {
l_key_t key;
l_uid16_t uid;
l_gid16_t gid;
l_uid16_t cuid;
l_gid16_t cgid;
l_ushort mode;
l_ushort seq;
};
static void
linux_to_bsd_ipc_perm(struct l_ipc_perm *lpp, struct ipc_perm *bpp)
{

View File

@ -82,7 +82,7 @@
#define LINUX_IPC_64 0x0100 /* New version (support 32-bit UIDs, bigger
message sizes, etc. */
#if defined(__i386__) || defined(__amd64__)
#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
struct linux_msgctl_args
{
@ -177,6 +177,6 @@ int linux_shmctl(struct thread *, struct linux_shmctl_args *);
int linux_shmdt(struct thread *, struct linux_shmdt_args *);
int linux_shmget(struct thread *, struct linux_shmget_args *);
#endif /* __i386__ || __amd64__ */
#endif /* __i386__ || (__amd64__ && COMPAT_LINUX32) */
#endif /* _LINUX_IPC_H_ */

View File

@ -550,6 +550,16 @@ union l_semun {
void *__pad;
};
struct l_ipc_perm {
l_key_t key;
l_uid16_t uid;
l_gid16_t gid;
l_uid16_t cuid;
l_gid16_t cgid;
l_ushort mode;
l_ushort seq;
};
/*
* Socket defines
*/