wireless.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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. #include <uapi/linux/wireless.h>
  13. #ifdef CONFIG_COMPAT
  14. #include <linux/compat.h>
  15. struct compat_iw_point {
  16. compat_caddr_t pointer;
  17. __u16 length;
  18. __u16 flags;
  19. };
  20. #endif
  21. #ifdef CONFIG_COMPAT
  22. struct __compat_iw_event {
  23. __u16 len; /* Real length of this stuff */
  24. __u16 cmd; /* Wireless IOCTL */
  25. union {
  26. compat_caddr_t pointer;
  27. /* we need ptr_bytes to make memcpy() run-time destination
  28. * buffer bounds checking happy, nothing special
  29. */
  30. DECLARE_FLEX_ARRAY(__u8, ptr_bytes);
  31. };
  32. };
  33. #define IW_EV_COMPAT_LCP_LEN offsetof(struct __compat_iw_event, pointer)
  34. #define IW_EV_COMPAT_POINT_OFF offsetof(struct compat_iw_point, length)
  35. /* Size of the various events for compat */
  36. #define IW_EV_COMPAT_CHAR_LEN (IW_EV_COMPAT_LCP_LEN + IFNAMSIZ)
  37. #define IW_EV_COMPAT_UINT_LEN (IW_EV_COMPAT_LCP_LEN + sizeof(__u32))
  38. #define IW_EV_COMPAT_FREQ_LEN (IW_EV_COMPAT_LCP_LEN + sizeof(struct iw_freq))
  39. #define IW_EV_COMPAT_PARAM_LEN (IW_EV_COMPAT_LCP_LEN + sizeof(struct iw_param))
  40. #define IW_EV_COMPAT_ADDR_LEN (IW_EV_COMPAT_LCP_LEN + sizeof(struct sockaddr))
  41. #define IW_EV_COMPAT_QUAL_LEN (IW_EV_COMPAT_LCP_LEN + sizeof(struct iw_quality))
  42. #define IW_EV_COMPAT_POINT_LEN \
  43. (IW_EV_COMPAT_LCP_LEN + sizeof(struct compat_iw_point) - \
  44. IW_EV_COMPAT_POINT_OFF)
  45. #endif
  46. #endif /* _LINUX_WIRELESS_H */