brcm_nl80211.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /*
  2. * Definitions for nl80211 vendor command/event access to host driver
  3. *
  4. * Portions of this code are copyright (c) 2020 Cypress Semiconductor Corporation
  5. *
  6. * Copyright (C) 1999-2020, Broadcom Corporation
  7. *
  8. * Unless you and Broadcom execute a separate written software license
  9. * agreement governing use of this software, this software is licensed to you
  10. * under the terms of the GNU General Public License version 2 (the "GPL"),
  11. * available at http://www.broadcom.com/licenses/GPLv2.php, with the
  12. * following added to such license:
  13. *
  14. * As a special exception, the copyright holders of this software give you
  15. * permission to link this software with independent modules, and to copy and
  16. * distribute the resulting executable under terms of your choice, provided that
  17. * you also meet, for each linked independent module, the terms and conditions of
  18. * the license of that module. An independent module is a module which is not
  19. * derived from this software. The special exception does not apply to any
  20. * modifications of the software.
  21. *
  22. * Notwithstanding the above, under no circumstances may you combine this
  23. * software in any way with any other Broadcom software provided under a license
  24. * other than the GPL, without Broadcom's express prior written consent.
  25. *
  26. *
  27. * <<Broadcom-WL-IPTag/Open:>>
  28. *
  29. * $Id: brcm_nl80211.h 601873 2015-11-24 11:04:28Z $
  30. *
  31. */
  32. #ifndef _brcm_nl80211_h_
  33. #define _brcm_nl80211_h_
  34. #define OUI_BRCM 0x001018
  35. #define OUI_GOOGLE 0x001A11
  36. enum wl_vendor_subcmd {
  37. BRCM_VENDOR_SCMD_UNSPEC = 0,
  38. BRCM_VENDOR_SCMD_PRIV_STR = 1,
  39. BRCM_VENDOR_SCMD_BCM_STR = 2,
  40. BRCM_VENDOR_SCMD_BCM_PSK = 3,
  41. BRCM_VENDOR_SCMD_SET_PMK = 4,
  42. BRCM_VENDOR_SCMD_GET_FEATURES = 5,
  43. BRCM_VENDOR_SCMD_MAX = 6
  44. };
  45. struct bcm_nlmsg_hdr {
  46. uint cmd; /* common ioctl definition */
  47. int len; /* expected return buffer length */
  48. uint offset; /* user buffer offset */
  49. uint set; /* get or set request optional */
  50. uint magic; /* magic number for verification */
  51. };
  52. enum bcmnl_attrs {
  53. BCM_NLATTR_UNSPEC,
  54. BCM_NLATTR_LEN,
  55. BCM_NLATTR_DATA,
  56. __BCM_NLATTR_AFTER_LAST,
  57. BCM_NLATTR_MAX = __BCM_NLATTR_AFTER_LAST - 1
  58. };
  59. struct nl_prv_data {
  60. int err; /* return result */
  61. void *data; /* ioctl return buffer pointer */
  62. uint len; /* ioctl return buffer length */
  63. struct bcm_nlmsg_hdr *nlioc; /* bcm_nlmsg_hdr header pointer */
  64. };
  65. #endif /* _brcm_nl80211_h_ */