1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * This file define a set of standard wireless extensions 4 * 5 * Version : 22 16.3.07 6 * 7 * Authors : Jean Tourrilhes - HPL - <[email protected]> 8 * Copyright (c) 1997-2007 Jean Tourrilhes, All Rights Reserved. 9 */ 10 #ifndef _LINUX_WIRELESS_H 11 #define _LINUX_WIRELESS_H 12 13 #include <uapi/linux/wireless.h> 14 15 #ifdef CONFIG_COMPAT 16 17 #include <linux/compat.h> 18 19 struct compat_iw_point { 20 compat_caddr_t pointer; 21 __u16 length; 22 __u16 flags; 23 }; 24 25 struct __compat_iw_event { 26 __u16 len; /* Real length of this stuff */ 27 __u16 cmd; /* Wireless IOCTL */ 28 29 union { 30 compat_caddr_t pointer; 31 32 /* we need ptr_bytes to make memcpy() run-time destination 33 * buffer bounds checking happy, nothing special 34 */ 35 DECLARE_FLEX_ARRAY(__u8, ptr_bytes); 36 }; 37 }; 38 #define IW_EV_COMPAT_LCP_LEN offsetof(struct __compat_iw_event, pointer) 39 #define IW_EV_COMPAT_POINT_OFF offsetof(struct compat_iw_point, length) 40 41 /* Size of the various events for compat */ 42 #define IW_EV_COMPAT_CHAR_LEN (IW_EV_COMPAT_LCP_LEN + IFNAMSIZ) 43 #define IW_EV_COMPAT_UINT_LEN (IW_EV_COMPAT_LCP_LEN + sizeof(__u32)) 44 #define IW_EV_COMPAT_FREQ_LEN (IW_EV_COMPAT_LCP_LEN + sizeof(struct iw_freq)) 45 #define IW_EV_COMPAT_PARAM_LEN (IW_EV_COMPAT_LCP_LEN + sizeof(struct iw_param)) 46 #define IW_EV_COMPAT_ADDR_LEN (IW_EV_COMPAT_LCP_LEN + sizeof(struct sockaddr)) 47 #define IW_EV_COMPAT_QUAL_LEN (IW_EV_COMPAT_LCP_LEN + sizeof(struct iw_quality)) 48 #define IW_EV_COMPAT_POINT_LEN \ 49 (IW_EV_COMPAT_LCP_LEN + sizeof(struct compat_iw_point) - \ 50 IW_EV_COMPAT_POINT_OFF) 51 #endif /* CONFIG_COMPAT */ 52 #endif /* _LINUX_WIRELESS_H */ 53