coreconfigurator.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. /*!
  2. * @file coreconfigurator.h
  3. * @brief
  4. * @author
  5. * @sa coreconfigurator.c
  6. * @date 1 Mar 2012
  7. * @version 1.0
  8. */
  9. #ifndef CORECONFIGURATOR_H
  10. #define CORECONFIGURATOR_H
  11. #include "wilc_wlan_if.h"
  12. #define NUM_BASIC_SWITCHES 45
  13. #define NUM_FHSS_SWITCHES 0
  14. #define NUM_RSSI 5
  15. #ifdef MAC_802_11N
  16. #define NUM_11N_BASIC_SWITCHES 25
  17. #define NUM_11N_HUT_SWITCHES 47
  18. #else
  19. #define NUM_11N_BASIC_SWITCHES 0
  20. #define NUM_11N_HUT_SWITCHES 0
  21. #endif
  22. #define MAC_HDR_LEN 24
  23. #define MAX_SSID_LEN 33
  24. #define FCS_LEN 4
  25. #define TIME_STAMP_LEN 8
  26. #define BEACON_INTERVAL_LEN 2
  27. #define CAP_INFO_LEN 2
  28. #define STATUS_CODE_LEN 2
  29. #define AID_LEN 2
  30. #define IE_HDR_LEN 2
  31. #define SET_CFG 0
  32. #define GET_CFG 1
  33. #define MAX_STRING_LEN 256
  34. #define MAX_SURVEY_RESULT_FRAG_SIZE MAX_STRING_LEN
  35. #define SURVEY_RESULT_LENGTH 44
  36. #define MAX_ASSOC_RESP_FRAME_SIZE MAX_STRING_LEN
  37. #define MAC_CONNECTED 1
  38. #define MAC_DISCONNECTED 0
  39. #define MAKE_WORD16(lsb, msb) ((((u16)(msb) << 8) & 0xFF00) | (lsb))
  40. #define MAKE_WORD32(lsw, msw) ((((u32)(msw) << 16) & 0xFFFF0000) | (lsw))
  41. typedef enum {
  42. SUCCESSFUL_STATUSCODE = 0,
  43. UNSPEC_FAIL = 1,
  44. UNSUP_CAP = 10,
  45. REASOC_NO_ASOC = 11,
  46. FAIL_OTHER = 12,
  47. UNSUPT_ALG = 13,
  48. AUTH_SEQ_FAIL = 14,
  49. CHLNG_FAIL = 15,
  50. AUTH_TIMEOUT = 16,
  51. AP_FULL = 17,
  52. UNSUP_RATE = 18,
  53. SHORT_PREAMBLE_UNSUP = 19,
  54. PBCC_UNSUP = 20,
  55. CHANNEL_AGIL_UNSUP = 21,
  56. SHORT_SLOT_UNSUP = 25,
  57. OFDM_DSSS_UNSUP = 26,
  58. CONNECT_STS_FORCE_16_BIT = 0xFFFF
  59. } tenuConnectSts;
  60. struct wid {
  61. u16 id;
  62. enum WID_TYPE type;
  63. s32 size;
  64. s8 *val;
  65. };
  66. typedef struct {
  67. u8 u8Full;
  68. u8 u8Index;
  69. s8 as8RSSI[NUM_RSSI];
  70. } tstrRSSI;
  71. typedef struct {
  72. s8 s8rssi;
  73. u16 u16CapInfo;
  74. u8 au8ssid[MAX_SSID_LEN];
  75. u8 u8SsidLen;
  76. u8 au8bssid[6];
  77. u16 u16BeaconPeriod;
  78. u8 u8DtimPeriod;
  79. u8 u8channel;
  80. unsigned long u32TimeRcvdInScanCached;
  81. unsigned long u32TimeRcvdInScan;
  82. bool bNewNetwork;
  83. u8 u8Found;
  84. u32 u32Tsf;
  85. u8 *pu8IEs;
  86. u16 u16IEsLen;
  87. void *pJoinParams;
  88. tstrRSSI strRssi;
  89. u64 u64Tsf;
  90. } tstrNetworkInfo;
  91. typedef struct {
  92. u16 u16capability;
  93. u16 u16ConnectStatus;
  94. u16 u16AssocID;
  95. u8 *pu8RespIEs;
  96. u16 u16RespIEsLen;
  97. } tstrConnectRespInfo;
  98. typedef struct {
  99. u8 au8bssid[6];
  100. u8 *pu8ReqIEs;
  101. size_t ReqIEsLen;
  102. u8 *pu8RespIEs;
  103. u16 u16RespIEsLen;
  104. u16 u16ConnectStatus;
  105. } tstrConnectInfo;
  106. typedef struct {
  107. u16 u16reason;
  108. u8 *ie;
  109. size_t ie_len;
  110. } tstrDisconnectNotifInfo;
  111. s32 send_config_pkt(u8 mode, struct wid *wids, u32 count, u32 drv);
  112. s32 parse_network_info(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo);
  113. s32 DeallocateNetworkInfo(tstrNetworkInfo *pstrNetworkInfo);
  114. s32 ParseAssocRespInfo(u8 *pu8Buffer, u32 u32BufferLen,
  115. tstrConnectRespInfo **ppstrConnectRespInfo);
  116. s32 DeallocateAssocRespInfo(tstrConnectRespInfo *pstrConnectRespInfo);
  117. void NetworkInfoReceived(u8 *pu8Buffer, u32 u32Length);
  118. void GnrlAsyncInfoReceived(u8 *pu8Buffer, u32 u32Length);
  119. void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length);
  120. #endif