1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef _ASM_GENERIC_IOCTL_H 3*4882a593Smuzhiyun #define _ASM_GENERIC_IOCTL_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #include <uapi/asm-generic/ioctl.h> 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun #ifdef __CHECKER__ 8*4882a593Smuzhiyun #define _IOC_TYPECHECK(t) (sizeof(t)) 9*4882a593Smuzhiyun #else 10*4882a593Smuzhiyun /* provoke compile error for invalid uses of size argument */ 11*4882a593Smuzhiyun extern unsigned int __invalid_size_argument_for_IOC; 12*4882a593Smuzhiyun #define _IOC_TYPECHECK(t) \ 13*4882a593Smuzhiyun ((sizeof(t) == sizeof(t[1]) && \ 14*4882a593Smuzhiyun sizeof(t) < (1 << _IOC_SIZEBITS)) ? \ 15*4882a593Smuzhiyun sizeof(t) : __invalid_size_argument_for_IOC) 16*4882a593Smuzhiyun #endif 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun #endif /* _ASM_GENERIC_IOCTL_H */ 19