162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
262306a36Sopenharmony_ci#ifndef __S390_IPCBUF_H__
362306a36Sopenharmony_ci#define __S390_IPCBUF_H__
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#include <linux/posix_types.h>
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci/*
862306a36Sopenharmony_ci * The user_ipc_perm structure for S/390 architecture.
962306a36Sopenharmony_ci * Note extra padding because this structure is passed back and forth
1062306a36Sopenharmony_ci * between kernel and user space.
1162306a36Sopenharmony_ci *
1262306a36Sopenharmony_ci * Pad space is left for:
1362306a36Sopenharmony_ci * - 32-bit mode_t and seq
1462306a36Sopenharmony_ci * - 2 miscellaneous 32-bit values
1562306a36Sopenharmony_ci */
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_cistruct ipc64_perm
1862306a36Sopenharmony_ci{
1962306a36Sopenharmony_ci	__kernel_key_t		key;
2062306a36Sopenharmony_ci	__kernel_uid32_t	uid;
2162306a36Sopenharmony_ci	__kernel_gid32_t	gid;
2262306a36Sopenharmony_ci	__kernel_uid32_t	cuid;
2362306a36Sopenharmony_ci	__kernel_gid32_t	cgid;
2462306a36Sopenharmony_ci	__kernel_mode_t		mode;
2562306a36Sopenharmony_ci	unsigned short		__pad1;
2662306a36Sopenharmony_ci	unsigned short		seq;
2762306a36Sopenharmony_ci#ifndef __s390x__
2862306a36Sopenharmony_ci	unsigned short		__pad2;
2962306a36Sopenharmony_ci#endif /* ! __s390x__ */
3062306a36Sopenharmony_ci	unsigned long		__unused1;
3162306a36Sopenharmony_ci	unsigned long		__unused2;
3262306a36Sopenharmony_ci};
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci#endif /* __S390_IPCBUF_H__ */
35