162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef _ASM_GENERIC_IOCTL_H
362306a36Sopenharmony_ci#define _ASM_GENERIC_IOCTL_H
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#include <uapi/asm-generic/ioctl.h>
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci#ifdef __CHECKER__
862306a36Sopenharmony_ci#define _IOC_TYPECHECK(t) (sizeof(t))
962306a36Sopenharmony_ci#else
1062306a36Sopenharmony_ci/* provoke compile error for invalid uses of size argument */
1162306a36Sopenharmony_ciextern unsigned int __invalid_size_argument_for_IOC;
1262306a36Sopenharmony_ci#define _IOC_TYPECHECK(t) \
1362306a36Sopenharmony_ci	((sizeof(t) == sizeof(t[1]) && \
1462306a36Sopenharmony_ci	  sizeof(t) < (1 << _IOC_SIZEBITS)) ? \
1562306a36Sopenharmony_ci	  sizeof(t) : __invalid_size_argument_for_IOC)
1662306a36Sopenharmony_ci#endif
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci#endif /* _ASM_GENERIC_IOCTL_H */
19