diff options
author | dchagin <dchagin@FreeBSD.org> | 2015-05-24 15:44:41 +0000 |
---|---|---|
committer | dchagin <dchagin@FreeBSD.org> | 2015-05-24 15:44:41 +0000 |
commit | dc4523e6a4c5069fcc945efca5e2ef11e84014ea (patch) | |
tree | c20847ed05cd06b67e74112a71c586f96615e439 /sys | |
parent | a92a30f54da0f10ef3807a9ce5639951610c03da (diff) | |
download | FreeBSD-src-dc4523e6a4c5069fcc945efca5e2ef11e84014ea.zip FreeBSD-src-dc4523e6a4c5069fcc945efca5e2ef11e84014ea.tar.gz |
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
Diffstat (limited to 'sys')
-rw-r--r-- | sys/amd64/linux32/linux.h | 10 | ||||
-rw-r--r-- | sys/compat/linux/linux_ipc.c | 10 | ||||
-rw-r--r-- | sys/compat/linux/linux_ipc.h | 4 | ||||
-rw-r--r-- | sys/i386/linux/linux.h | 10 |
4 files changed, 22 insertions, 12 deletions
diff --git a/sys/amd64/linux32/linux.h b/sys/amd64/linux32/linux.h index 28fcdd5..5fcf8df 100644 --- a/sys/amd64/linux32/linux.h +++ b/sys/amd64/linux32/linux.h @@ -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 */ diff --git a/sys/compat/linux/linux_ipc.c b/sys/compat/linux/linux_ipc.c index 1237edc..7a92c6a 100644 --- a/sys/compat/linux/linux_ipc.c +++ b/sys/compat/linux/linux_ipc.c @@ -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) { diff --git a/sys/compat/linux/linux_ipc.h b/sys/compat/linux/linux_ipc.h index f1531ba..8e9c050 100644 --- a/sys/compat/linux/linux_ipc.h +++ b/sys/compat/linux/linux_ipc.h @@ -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_ */ diff --git a/sys/i386/linux/linux.h b/sys/i386/linux/linux.h index 8b168c4..e0b6866 100644 --- a/sys/i386/linux/linux.h +++ b/sys/i386/linux/linux.h @@ -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 */ |