This is WlanBP3595 library for STA mode. This library only works with GR-PEACH. We performed the operation check on GR-PEACH E version. Please refer to LICENSE.txt about license of this library.

Fork of WlanBP3595STA by Rohm

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers WlanBP3595.h Source File

WlanBP3595.h

Go to the documentation of this file.
00001 /****************************************************************************/
00002 /* Copyright (c) 2015 GRAPE SYSTEMS INC.                                    */
00003 /*                                                                          */
00004 /* Licensed under the Apache License, Version 2.0 (the "License");          */
00005 /* you may not use this file except in compliance with the License.         */
00006 /* You may obtain a copy of the License at                                  */
00007 /*                                                                          */
00008 /*     http://www.apache.org/licenses/LICENSE-2.0                           */
00009 /*                                                                          */
00010 /* Unless required by applicable law or agreed to in writing, software      */
00011 /* distributed under the License is distributed on an "AS IS" BASIS,        */
00012 /* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */
00013 /* See the License for the specific language governing permissions and      */
00014 /* limitations under the License.                                           */
00015 /*                                                                          */
00016 /* [Additional license terms]                                               */
00017 /*                                                                          */
00018 /*     This library is free for non-commercial purposes.                    */
00019 /*     To use this commercially, contact us at                              */
00020 /*                                                                          */
00021 /*         sales@info.grape.co.jp                                           */
00022 /*                                                                          */
00023 /****************************************************************************/
00024 
00025 /** @file
00026  *
00027  * WlanBP3595 library.
00028  * This library only works with GR-PEACH.
00029  *
00030  * @note
00031  *      Please refer to ROHM's "Software Development Specs" for the information of WID.
00032  */
00033 
00034 #ifndef _WLANBP3595_H_
00035 #define _WLANBP3595_H_
00036 
00037 #include "rza1_bp3595_emac.h"
00038 #include "lwip/opt.h"
00039 #include "lwip/pbuf.h"
00040 
00041 #ifdef __cplusplus
00042 extern "C" {
00043 #endif
00044 
00045 /**** CONSTANT DEFINES **************************************************************************/
00046 
00047 /** @name Status of WlanBP3595
00048  *
00049  */
00050 /*@{*/
00051 #define WLAN_BP3595_NONE    0   /*!< BP3595 is not connected, or the firmware is not downloaded */
00052 #define WLAN_BP3595_FW_DL   1   /*!< The firmware is being downloaded */
00053 #define WLAN_BP3595_START   2   /*!< The firmware was downloaded and is working */
00054 /*@}*/
00055 
00056 /**** FUNCTION PROTOTYPE & MACRO FUNCTION  ******************************************************/
00057 
00058 /** Initialize WlanBP3595
00059  *
00060  * @note
00061  *      After executing this function, please wait until the state becomes WLAN_BP3595_START.
00062  *      You can get the status by WlanBP3595_GetWlanSts().
00063  *
00064  * @param   pfnWlanInfoNotication   The information callback function
00065  *                                  - 1st param : The message type ('I' or 'N')
00066  *                                  - 2nd param : WID number
00067  *                                  - 3rd param : The data size
00068  *                                  - 4th param : The data buffer
00069  * @retval  0                       Success
00070  * @retval  "The others"            Failure
00071  */
00072 int WlanBP3595_Init(void (*pfnWlanInfoNotication)(uint8_t, uint16_t, uint16_t, uint8_t *));
00073 
00074 /** Get the status of WlanBP3595
00075  *
00076  * @retval  WLAN_BP3595_NONE        BP3595 is not connected, or the firmware is not downloaded
00077  * @retval  WLAN_BP3595_FW_DL       The firmware is being downloaded
00078  * @retval  WLAN_BP3595_START       The firmware was downloaded and is working
00079  */
00080 uint32_t WlanBP3595_GetWlanSts(void);
00081 
00082 /** Execute WID function
00083  *
00084  * @param   ulFunc                  A function number
00085  * @param   pvParam                 The data buffer (the parameter)
00086  * @retval  0                       Success
00087  * @retval  "The others"            Failure
00088  */
00089 int WlanBP3595_Ioctl(uint32_t ulFunc, void *pvParam);
00090 
00091 /** Output an ethernet frame
00092  *
00093  * @note
00094  *      This function is used in EthernetInterface driver.
00095  *
00096  * @param   p                       A pbuf to output
00097  * @retval  0                       Success
00098  * @retval  "The others"            Failure
00099  */
00100 int WlanBP3595_Output(struct pbuf *p);
00101 
00102 /** Enable receiving
00103  *
00104  * @note
00105  *      This function is used in EthernetInterface driver.
00106  */
00107 void WlanBP3595_RecvEnable(void);
00108 
00109 /** Disable receiving
00110  *
00111  * @note
00112  *      This function is used in EthernetInterface driver.
00113  */
00114 void WlanBP3595_RecvDisable(void);
00115 
00116 /** @name Macro Function
00117  *
00118  */
00119 /*@{*/
00120 
00121 /** Notify the EthernetInterface driver that WLAN was connected
00122  *
00123  * When WLAN was connected,
00124  * please call this macro function from your application program.
00125  * The types of the argument and the return value are "void".
00126  * You can know the change of the connection state by the information callback.
00127  *
00128  * @note
00129  *      When this function is called before executing EthernetInterface::init(), this function does nothing.
00130  *      If you use WlanBP3595_Disconnected() in a different thread, please perform exclusive control.
00131  */
00132 #define WlanBP3595_Connected()      rza1_bp3595_connected()
00133 
00134 /** Notify the EthernetInterface driver that WLAN was disconnected
00135  *
00136  * When WLAN was disconnected,
00137  * please call this macro function from your application program.
00138  * The types of the argument and the return value are "void".
00139  * You can know the change of the connection state by the information callback.
00140  *
00141  * @note
00142  *      When this function is called before executing EthernetInterface::init(), this function does nothing.
00143  *      If you use WlanBP3595_Connected() in a different thread, please perform exclusive control.
00144  */
00145 #define WlanBP3595_Disconnected()   rza1_bp3595_disconnected()
00146 
00147 /*@}*/
00148 
00149 /**** TYPE DEFINES ******************************************************************************/
00150 typedef unsigned int    grp_ui;
00151 typedef signed int      grp_si;
00152 
00153 typedef unsigned long   grp_u32;
00154 typedef signed long     grp_s32;
00155 
00156 typedef unsigned short  grp_u16;
00157 typedef signed short    grp_s16;
00158 
00159 typedef unsigned char   grp_u8;
00160 typedef signed char     grp_s8;
00161 
00162 /**** SIZE DEFINES ******************************************************************************/
00163 #define     GRP_WLD_SSID_SIZE                               32
00164 #define     GRP_WLD_BSSID_SIZE                              6
00165 #define     GRP_WLD_MAC_ADDRESS_SIZE                        6
00166 #define     GRP_WLD_WEP_KEY_SIZE_128                        13
00167 
00168 /**** IOCTL FUNCTION PARAMETER DEFINES **********************************************************/
00169 #define     GRP_WLD_IOCTL_SITE_SURVEY_RESULT_MAX            8
00170 
00171 /**** IOCTL FUNCTION BASE NUMBER DEFINES ********************************************************/
00172 #define     GRP_WLD_IOCTL_FUNCTION_KIND_MASK                0xc000
00173 #define     GRP_WLD_IOCTL_GET_FUNCTION                      0x8000
00174 #define     GRP_WLD_IOCTL_SET_FUNCTION                      0x4000
00175 
00176 /**** IOCTL FUNCTION NUMBER DEFINES *************************************************************/
00177 
00178 /** @name Function code
00179  *
00180  */
00181 /*@{*/
00182 #define     GRP_WLD_IOCTL_GET_BSS_TYPE                      GRP_WLD_IOCTL_GET_FUNCTION + 0x0001 /*!< The function code of WID_BSS_TYPE for getting. The parameter type is "grp_u8". */
00183 #define     GRP_WLD_IOCTL_SET_BSS_TYPE                      GRP_WLD_IOCTL_SET_FUNCTION + 0x0001 /*!< The function code of WID_BSS_TYPE for setting. The parameter type is "grp_u8". */
00184 #define     GRP_WLD_IOCTL_GET_CHANNEL                       GRP_WLD_IOCTL_GET_FUNCTION + 0x0002 /*!< The function code of WID_CURRENT_CHANNEL for getting. The parameter type is "grp_u8". */
00185 #define     GRP_WLD_IOCTL_SET_CHANNEL                       GRP_WLD_IOCTL_SET_FUNCTION + 0x0002 /*!< The function code of WID_CURRENT_CHANNEL for setting. The parameter type is "grp_u8". */
00186 #define     GRP_WLD_IOCTL_GET_ENABLE_CHANNEL                GRP_WLD_IOCTL_GET_FUNCTION + 0x0003 /*!< The function code of WID_ENABLE_CHANNEL for getting. The parameter type is "grp_u32". */
00187 #define     GRP_WLD_IOCTL_SET_ENABLE_CHANNEL                GRP_WLD_IOCTL_SET_FUNCTION + 0x0003 /*!< The function code of WID_ENABLE_CHANNEL for setting. The parameter type is "grp_u32". */
00188 #define     GRP_WLD_IOCTL_GET_11I_MODE                      GRP_WLD_IOCTL_GET_FUNCTION + 0x0004 /*!< The function code of WID_11I_MODE for getting. The parameter type is "grp_u8". */
00189 #define     GRP_WLD_IOCTL_SET_11I_MODE                      GRP_WLD_IOCTL_SET_FUNCTION + 0x0004 /*!< The function code of WID_11I_MODE for setting. The parameter type is "grp_u8". */
00190 #define     GRP_WLD_IOCTL_GET_11I_PSK                       GRP_WLD_IOCTL_GET_FUNCTION + 0x0005 /*!< The function code of WID_11I_PSK for getting. The parameter type is "grp_wld_byte_array". */
00191 #define     GRP_WLD_IOCTL_SET_11I_PSK                       GRP_WLD_IOCTL_SET_FUNCTION + 0x0005 /*!< The function code of WID_11I_PSK for setting. The parameter type is "grp_wld_byte_array". */
00192 #define     GRP_WLD_IOCTL_GET_SCAN_FILTER                   GRP_WLD_IOCTL_GET_FUNCTION + 0x0006 /*!< The function code of WID_SCAN_FILTER for getting. The parameter type is "grp_u8". */
00193 #define     GRP_WLD_IOCTL_SET_SCAN_FILTER                   GRP_WLD_IOCTL_SET_FUNCTION + 0x0006 /*!< The function code of WID_SCAN_FILTER for setting. The parameter type is "grp_u8". */
00194 #define     GRP_WLD_IOCTL_GET_RSSI                          GRP_WLD_IOCTL_GET_FUNCTION + 0x000f /*!< The function code of WID_RSSI for getting. The parameter type is "grp_u8". */
00195 #define     GRP_WLD_IOCTL_GET_POWER_MANAGEMENT              GRP_WLD_IOCTL_GET_FUNCTION + 0x0010
00196 #define     GRP_WLD_IOCTL_SET_POWER_MANAGEMENT              GRP_WLD_IOCTL_SET_FUNCTION + 0x0010
00197 #define     GRP_WLD_IOCTL_GET_POWER_SAVE                    GRP_WLD_IOCTL_GET_FUNCTION + 0x0011
00198 #define     GRP_WLD_IOCTL_SET_POWER_SAVE                    GRP_WLD_IOCTL_SET_FUNCTION + 0x0011
00199 #define     GRP_WLD_IOCTL_GET_MAC_STATUS                    GRP_WLD_IOCTL_GET_FUNCTION + 0x0012 /*!< The function code of WID_CURRENT_MAC_STATUS for getting. The parameter type is "grp_u8". */
00200 #define     GRP_WLD_IOCTL_GET_SSID                          GRP_WLD_IOCTL_GET_FUNCTION + 0x0013 /*!< The function code of WID_SSID for getting. The parameter type is "grp_wld_byte_array". */
00201 #define     GRP_WLD_IOCTL_SET_SSID                          GRP_WLD_IOCTL_SET_FUNCTION + 0x0013 /*!< The function code of WID_SSID for setting. The parameter type is "grp_wld_byte_array". */
00202 #define     GRP_WLD_IOCTL_GET_BCAST_SSID                    GRP_WLD_IOCTL_GET_FUNCTION + 0x0014 /*!< The function code of WID_BCAST_SSID for getting. The parameter type is "grp_u8". */
00203 #define     GRP_WLD_IOCTL_SET_BCAST_SSID                    GRP_WLD_IOCTL_SET_FUNCTION + 0x0014 /*!< The function code of WID_BCAST_SSID for setting. The parameter type is "grp_u8". */
00204 #define     GRP_WLD_IOCTL_GET_BSSID                         GRP_WLD_IOCTL_GET_FUNCTION + 0x0015 /*!< The function code of WID_BSSID for getting. The parameter type is "grp_wld_byte_array". */
00205 #define     GRP_WLD_IOCTL_GET_WEP_KEY                       GRP_WLD_IOCTL_GET_FUNCTION + 0x0016 /*!< The function code of WID_WEP_KEY_VALUE for getting. The parameter type is "grp_wld_byte_array". */
00206 #define     GRP_WLD_IOCTL_SET_WEP_KEY                       GRP_WLD_IOCTL_SET_FUNCTION + 0x0016 /*!< The function code of WID_WEP_KEY_VALUE for setting. The parameter type is "grp_wld_byte_array". */
00207 #define     GRP_WLD_IOCTL_GET_WEP_KEY_INDEX                 GRP_WLD_IOCTL_GET_FUNCTION + 0x0017 /*!< The function code of WID_KEY_ID for getting. The parameter type is "grp_u8". */
00208 #define     GRP_WLD_IOCTL_SET_WEP_KEY_INDEX                 GRP_WLD_IOCTL_SET_FUNCTION + 0x0017 /*!< The function code of WID_KEY_ID for setting. The parameter type is "grp_u8". */
00209 #define     GRP_WLD_IOCTL_GET_LISTEN_INTERVAL               GRP_WLD_IOCTL_GET_FUNCTION + 0x0019 /*!< The function code of WID_LISTEN_INTERVAL for getting. The parameter type is "grp_u8". */
00210 #define     GRP_WLD_IOCTL_SET_LISTEN_INTERVAL               GRP_WLD_IOCTL_SET_FUNCTION + 0x0019 /*!< The function code of WID_LISTEN_INTERVAL for setting. The parameter type is "grp_u8". */
00211 #define     GRP_WLD_IOCTL_GET_SITE_SURVEY_RESULT            GRP_WLD_IOCTL_GET_FUNCTION + 0x001a /*!< The function code of WID_SITE_SURVEY_RESULTS for getting. The parameter type is "grp_wld_site_survey_result_array". */
00212 #define     GRP_WLD_IOCTL_GET_DEVICE_STRINGS                GRP_WLD_IOCTL_GET_FUNCTION + 0x001b /*!< The function code of WID_FIRMWARE_VERSION & WID_SERIAL_NUMBER for getting. The parameter type is "grp_wld_dev_strings". */
00213 #define     GRP_WLD_IOCTL_GET_MAC_ADDRESS                   GRP_WLD_IOCTL_GET_FUNCTION + 0x001c /*!< The function code of WID_MAC_ADDR for getting. The parameter type is "grp_wld_byte_array". */
00214 #define     GRP_WLD_IOCTL_GET_SCAN_TYPE                     GRP_WLD_IOCTL_GET_FUNCTION + 0x0022 /*!< The function code of WID_SCAN_TYPE for getting. The parameter type is "grp_u8". */
00215 #define     GRP_WLD_IOCTL_SET_SCAN_TYPE                     GRP_WLD_IOCTL_SET_FUNCTION + 0x0022 /*!< The function code of WID_SCAN_TYPE for setting. The parameter type is "grp_u8". */
00216 #define     GRP_WLD_IOCTL_GET_AUTH_TYPE                     GRP_WLD_IOCTL_GET_FUNCTION + 0x0026 /*!< The function code of WID_AUTH_TYPE for getting. The parameter type is "grp_u8". */
00217 #define     GRP_WLD_IOCTL_SET_AUTH_TYPE                     GRP_WLD_IOCTL_SET_FUNCTION + 0x0026 /*!< The function code of WID_AUTH_TYPE for setting. The parameter type is "grp_u8". */
00218 #define     GRP_WLD_IOCTL_GET_SEL_ANTENNA                   GRP_WLD_IOCTL_GET_FUNCTION + 0x0030 /*!< The function code of WID_ANTENNA_SELECTION for getting. The parameter type is "grp_u8". */
00219 #define     GRP_WLD_IOCTL_SET_SEL_ANTENNA                   GRP_WLD_IOCTL_SET_FUNCTION + 0x0030 /*!< The function code of WID_ANTENNA_SELECTION for setting. The parameter type is "grp_u8". */
00220 #define     GRP_WLD_IOCTL_GET_WPS_START                     GRP_WLD_IOCTL_GET_FUNCTION + 0x0035 /*!< The function code of WID_WPS_START for getting. The parameter type is "grp_u8". */
00221 #define     GRP_WLD_IOCTL_SET_WPS_START                     GRP_WLD_IOCTL_SET_FUNCTION + 0x0035 /*!< The function code of WID_WPS_START for setting. The parameter type is "grp_u8". */
00222 #define     GRP_WLD_IOCTL_GET_WPS_DEV_MODE                  GRP_WLD_IOCTL_GET_FUNCTION + 0x0036 /*!< The function code of WID_WPS_DEV_MODE for getting. The parameter type is "grp_u8". */
00223 #define     GRP_WLD_IOCTL_SET_WPS_DEV_MODE                  GRP_WLD_IOCTL_SET_FUNCTION + 0x0036 /*!< The function code of WID_WPS_DEV_MODE for setting. The parameter type is "grp_u8". */
00224 #define     GRP_WLD_IOCTL_GET_BEACON_INTERVAL               GRP_WLD_IOCTL_GET_FUNCTION + 0x004a /*!< The function code of WID_BEACON_INTERVAL for getting. The parameter type is "grp_u16". */
00225 #define     GRP_WLD_IOCTL_SET_BEACON_INTERVAL               GRP_WLD_IOCTL_SET_FUNCTION + 0x004a /*!< The function code of WID_BEACON_INTERVAL for setting. The parameter type is "grp_u16". */
00226 #define     GRP_WLD_IOCTL_GET_WPS_PIN                       GRP_WLD_IOCTL_GET_FUNCTION + 0x0064 /*!< The function code of WID_WPS_PIN for getting. The parameter type is "grp_wld_byte_array". */
00227 #define     GRP_WLD_IOCTL_SET_WPS_PIN                       GRP_WLD_IOCTL_SET_FUNCTION + 0x0064 /*!< The function code of WID_WPS_PIN for setting. The parameter type is "grp_wld_byte_array". */
00228 #define     GRP_WLD_IOCTL_GET_WPS_CRED_LIST                 GRP_WLD_IOCTL_GET_FUNCTION + 0x006a /*!< The function code of WID_WPS_CRED_LIST for getting. The parameter type is "grp_wld_wps_cred_list". */
00229 #define     GRP_WLD_IOCTL_SET_WPS_CRED_LIST                 GRP_WLD_IOCTL_SET_FUNCTION + 0x006a /*!< The function code of WID_WPS_CRED_LIST for setting. The parameter type is "grp_wld_wps_cred_list". */
00230 #define     GRP_WLD_IOCTL_GET_USB_IN_XFER_MODE              GRP_WLD_IOCTL_GET_FUNCTION + 0x006b /*!< The function code of WID_USB_IN_XFER_MODE for getting. The parameter type is "grp_u8". */
00231 #define     GRP_WLD_IOCTL_SET_USB_IN_XFER_MODE              GRP_WLD_IOCTL_SET_FUNCTION + 0x006b /*!< The function code of WID_USB_IN_XFER_MODE for setting. The parameter type is "grp_u8". */
00232 #define     GRP_WLD_IOCTL_GET_TX_POWER_RATE                 GRP_WLD_IOCTL_GET_FUNCTION + 0x006c /*!< The function code of WID_TX_POWER_RATE for getting. The parameter type is "grp_u8". */
00233 #define     GRP_WLD_IOCTL_SET_TX_POWER_RATE                 GRP_WLD_IOCTL_SET_FUNCTION + 0x006c /*!< The function code of WID_TX_POWER_RATE for setting. The parameter type is "grp_u8". */
00234 
00235 #define     GRP_WLD_IOCTL_GET_VSIE_FRAME                    GRP_WLD_IOCTL_GET_FUNCTION + 0x006d /*!< The function code of WID_VSIE_FRAME for getting. The parameter type is "grp_u8". */
00236 #define     GRP_WLD_IOCTL_SET_VSIE_FRAME                    GRP_WLD_IOCTL_SET_FUNCTION + 0x006d /*!< The function code of WID_VSIE_FRAME for setting. The parameter type is "grp_u8". */
00237 #define     GRP_WLD_IOCTL_GET_VSIE_INFO_ENABLE              GRP_WLD_IOCTL_GET_FUNCTION + 0x006e /*!< The function code of WID_VSIE_INFO_ENABLE for getting. The parameter type is "grp_u8". */
00238 #define     GRP_WLD_IOCTL_SET_VSIE_INFO_ENABLE              GRP_WLD_IOCTL_SET_FUNCTION + 0x006e /*!< The function code of WID_VSIE_INFO_ENABLE for setting. The parameter type is "grp_u8". */
00239 #define     GRP_WLD_IOCTL_GET_VSIE_RX_OUI                   GRP_WLD_IOCTL_GET_FUNCTION + 0x006f /*!< The function code of WID_VSIE_RX_OUI for getting. The parameter type is "grp_u32". */
00240 #define     GRP_WLD_IOCTL_SET_VSIE_RX_OUI                   GRP_WLD_IOCTL_SET_FUNCTION + 0x006f /*!< The function code of WID_VSIE_RX_OUI for setting. The parameter type is "grp_u32". */
00241 #define     GRP_WLD_IOCTL_GET_VSIE_TX_DATA                  GRP_WLD_IOCTL_GET_FUNCTION + 0x0070 /*!< The function code of WID_VSIE_TX_DATA for getting. The parameter type is "grp_wld_byte_array". */
00242 #define     GRP_WLD_IOCTL_SET_VSIE_TX_DATA                  GRP_WLD_IOCTL_SET_FUNCTION + 0x0070 /*!< The function code of WID_VSIE_TX_DATA for setting. The parameter type is "grp_wld_byte_array". */
00243 #define     GRP_WLD_IOCTL_GET_VSIE_RX_DATA                  GRP_WLD_IOCTL_GET_FUNCTION + 0x0071 /*!< The function code of WID_VSIE_RX_DATA for getting. The parameter type is "grp_wld_byte_array". */
00244 #define     GRP_WLD_IOCTL_GET_DTIM_PERIOD                   GRP_WLD_IOCTL_GET_FUNCTION + 0x0072 /*!< The function code of WID_DTIM_PERIOD for getting. The parameter type is "grp_u8". */
00245 #define     GRP_WLD_IOCTL_SET_DTIM_PERIOD                   GRP_WLD_IOCTL_SET_FUNCTION + 0x0072 /*!< The function code of WID_DTIM_PERIOD for setting. The parameter type is "grp_u8". */
00246 #define     GRP_WLD_IOCTL_SET_DISCONNECT                    GRP_WLD_IOCTL_SET_FUNCTION + 0x0073 /*!< The function code of WID_DISCONNECT for setting. The parameter type is "grp_u8". */
00247 #define     GRP_WLD_IOCTL_GET_REKEY_PERIOD                  GRP_WLD_IOCTL_GET_FUNCTION + 0x0074 /*!< The function code of WID_REKEY_PERIOD for getting. The parameter type is "grp_u32". */
00248 #define     GRP_WLD_IOCTL_SET_REKEY_PERIOD                  GRP_WLD_IOCTL_SET_FUNCTION + 0x0074 /*!< The function code of WID_REKEY_PERIOD for setting. The parameter type is "grp_u32". */
00249 #define     GRP_WLD_IOCTL_GET_WPS_PASS_ID                   GRP_WLD_IOCTL_GET_FUNCTION + 0x0075 /*!< The function code of WID_WPS_PASS_ID for getting. The parameter type is "grp_u16". */
00250 #define     GRP_WLD_IOCTL_SET_WPS_PASS_ID                   GRP_WLD_IOCTL_SET_FUNCTION + 0x0075 /*!< The function code of WID_WPS_PASS_ID for setting. The parameter type is "grp_u16". */
00251 #define     GRP_WLD_IOCTL_GET_REKEY_POLICY                  GRP_WLD_IOCTL_GET_FUNCTION + 0x0076 /*!< The function code of WID_REKEY_POLICY for getting. The parameter type is "grp_u8". */
00252 #define     GRP_WLD_IOCTL_SET_REKEY_POLICY                  GRP_WLD_IOCTL_SET_FUNCTION + 0x0076 /*!< The function code of WID_REKEY_POLICY for setting. The parameter type is "grp_u8". */
00253 #define     GRP_WLD_IOCTL_GET_CONNECTED_STA_LIST            GRP_WLD_IOCTL_GET_FUNCTION + 0x0077 /*!< The function code of WID_CONNECTED_STA_LIST for getting. The parameter type is "grp_wld_connected_sta_list_info". */
00254 
00255 #define     GRP_WLD_IOCTL_SET_JOIN_REQUEST                  GRP_WLD_IOCTL_SET_FUNCTION + 0x0902 /*!< The function code of WID_JOIN_REQ for setting. The parameter type is "grp_u8". */
00256 #define     GRP_WLD_IOCTL_SET_START_SCAN_REQ                GRP_WLD_IOCTL_SET_FUNCTION + 0x0905 /*!< The function code of WID_START_SCAN_REQ for setting. The parameter type is "grp_u8". */
00257 #define     GRP_WLD_IOCTL_GET_CHECK_SCAN_END                GRP_WLD_IOCTL_GET_FUNCTION + 0x0906 /*!< The function code of WID_START_SCAN_REQ for getting. The parameter type is "grp_u8". */
00258 #define     GRP_WLD_IOCTL_GET_SITE_SURVEY                   GRP_WLD_IOCTL_GET_FUNCTION + 0x0907 /*!< The function code of WID_SITE_SURVEY for getting. The parameter type is "grp_u8". */
00259 #define     GRP_WLD_IOCTL_SET_SITE_SURVEY                   GRP_WLD_IOCTL_SET_FUNCTION + 0x0907 /*!< The function code of WID_SITE_SURVEY for setting. The parameter type is "grp_u8". */
00260 /*@}*/
00261 
00262 /**** STRUCTURE DEFINES  *************************************************************************/
00263 
00264 /** Byte array structure
00265  *
00266  */
00267 typedef struct GRP_WLD_BYTE_ARRAY_T {                           /* Byte array structure */
00268     grp_u32                             ulSize ;                 /*!< Array size */
00269     grp_u8                              *pucData ;               /*!< Byte array buffer pointer */
00270 } grp_wld_byte_array;
00271 
00272 /** Device strings structure
00273  *
00274  */
00275 typedef struct GRP_WLD_DEV_STRINGS_T {                          /* Device strings structure  */
00276     grp_u32                             ulFirmwareVersionSize ;  /*!< buffer size */
00277     grp_u8                              *pucFirmwareVersionBuf ; /*!< buffer pointer */
00278     grp_u32                             ulSerialNumberSize ;     /*!< buffer size */
00279     grp_u8                              *pucSerialNumberBuf ;    /*!< buffer pointer */
00280 } grp_wld_dev_strings;
00281 
00282 /** Site survey result structure
00283  *
00284  */
00285 typedef struct GRP_WLD_SITE_SURVEY_RESULT_T {                   /* Site survey result structure */
00286     grp_u8                              aucSsid [GRP_WLD_SSID_SIZE + 1]; /*!< SSID */
00287     grp_u8                              ucBssType ;              /*!< BSS type */
00288     grp_u8                              ucChannel ;              /*!< Channel */
00289     grp_u8                              ucSecurity ;             /*!< Security */
00290     grp_u8                              aucBssid [GRP_WLD_BSSID_SIZE];   /*!< BSSID */
00291     grp_u8                              ucRxPower ;              /*!< Rx power */
00292 } grp_wld_site_survey_result;
00293 
00294 /** Site survey result array structure
00295  *
00296  */
00297 typedef struct GRP_WLD_SITE_SURVEY_RESULT_ARRAY_T {             /* Site survey result array structure */
00298     grp_si                              iCnt ;                   /*!< Valid data count */
00299     grp_wld_site_survey_result          atResult [GRP_WLD_IOCTL_SITE_SURVEY_RESULT_MAX]; /*!< result */
00300 } grp_wld_site_survey_result_array;
00301 
00302 /** WPS cred list structure
00303  *
00304  */
00305 typedef struct GRP_WLD_WPS_CRED_T {                             /* WPS cred list structure */
00306     grp_u8                              aucSSID [GRP_WLD_SSID_SIZE+1];   /*!< SSID */
00307     grp_u8                              ucAuthType ;             /*!< auth type */
00308     grp_u8                              uc11imode ;              /*!< 11i mode */
00309     grp_u8                              ucWEPKeyId ;             /*!< WEP key ID */
00310     grp_u8                              aucWEPKey [GRP_WLD_WEP_KEY_SIZE_128+1];  /*!< WEP key value */
00311     grp_u8                              ucWEPKeyLen ;            /*!< WEP key length */
00312     grp_u8                              aucPSK [64+1];           /*!< PSK */
00313     grp_u8                              ucPSKLen ;               /*!< PSK Length */
00314     grp_u8                              aucBSSID [GRP_WLD_BSSID_SIZE];   /*!< BSSID */
00315 } grp_wld_wps_cred;
00316 
00317 /** WPS cred list structure
00318  *
00319  */
00320 typedef struct GRP_WLD_WPS_CRED_LIST_T {                        /* WPS cred list structure */
00321     grp_si                              iNum ;                   /*!< Cred info number */
00322     grp_wld_wps_cred                    *ptCredBuf ;             /*!< Cred info buffer */
00323 } grp_wld_wps_cred_list;
00324 
00325 /** STA join information
00326  *
00327  */
00328 typedef struct GRP_WLD_STA_JOIN_INFO_T {                        /* STA join information */
00329     grp_u8                              ucAID ;                  /*!< Association ID lower 8bit */
00330     grp_u8                              ucSTAType ;              /*!< STA type */
00331     grp_u8                              uc11gInfo ;              /*!< 11g information */
00332     grp_u8                              ucSecInfo ;              /*!< Security information */
00333     grp_u16                             usWMMInfo ;              /*!< WMM information */
00334     grp_u16                             us11nInfo ;              /*!< 11N information */
00335     grp_u8                              aucMacAddress [GRP_WLD_MAC_ADDRESS_SIZE];
00336                                                                 /*!< MAC address */
00337 } grp_wld_sta_join_info;
00338 
00339 /** Connected Sta list information
00340  *
00341  */
00342 typedef struct GRP_WLD_CONNECTED_STA_LIST_INFO_T {              /* Connected Sta list information */
00343     grp_si                              iNum ;                   /*!< Connected sta info number */
00344     grp_wld_sta_join_info               *ptCnctStaBuf ;          /*!< Connected sta info buffer */
00345 } grp_wld_connected_sta_list_info;
00346 
00347 #ifdef __cplusplus
00348 }
00349 #endif
00350 
00351 #endif /* _WLANBP3595_H_ */