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