mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
wlan: Deprecate all WAPI ioctls
ALL WAPI ioctls WLAN_PRIV_SET_WAPI_MODE, WLAN_PRIV_GET_WAPI_MODE WLAN_PRIV_SET_WAPI_ASSOC_INFO, WLAN_PRIV_SET_WAPI_KEY, WLAN_PRIV_SET_WAPI_BKID, WLAN_PRIV_GET_WAPI_BKID are not being used, hence removing the source code related to all these ioctls Change-Id: I204cd579b4e29df7e995f30cc0aa8612bc7965ee CRs-Fixed: 677410 Bug: 27776888
This commit is contained in:
parent
a2d9b94c20
commit
fc976934bd
1 changed files with 6 additions and 338 deletions
|
@ -250,17 +250,12 @@ static const hdd_freq_chan_map_t freq_chan_map[] = { {2412, 1}, {2417, 2},
|
|||
#define WLAN_PRIV_DEL_TSPEC (SIOCIWFIRSTPRIV + 11)
|
||||
#define WLAN_PRIV_GET_TSPEC (SIOCIWFIRSTPRIV + 13)
|
||||
|
||||
#ifdef FEATURE_WLAN_WAPI
|
||||
/* Private ioctls EVEN NO: SET, ODD NO:GET */
|
||||
#define WLAN_PRIV_SET_WAPI_MODE (SIOCIWFIRSTPRIV + 8)
|
||||
#define WLAN_PRIV_GET_WAPI_MODE (SIOCIWFIRSTPRIV + 16)
|
||||
#define WLAN_PRIV_SET_WAPI_ASSOC_INFO (SIOCIWFIRSTPRIV + 10)
|
||||
#define WLAN_PRIV_SET_WAPI_KEY (SIOCIWFIRSTPRIV + 12)
|
||||
#define WLAN_PRIV_SET_WAPI_BKID (SIOCIWFIRSTPRIV + 14)
|
||||
#define WLAN_PRIV_GET_WAPI_BKID (SIOCIWFIRSTPRIV + 15)
|
||||
#define WAPI_PSK_AKM_SUITE 0x02721400
|
||||
#define WAPI_CERT_AKM_SUITE 0x01721400
|
||||
#endif
|
||||
/* (SIOCIWFIRSTPRIV + 8) is currently unused */
|
||||
/* (SIOCIWFIRSTPRIV + 16) is currently unused */
|
||||
/* (SIOCIWFIRSTPRIV + 10) is currently unused */
|
||||
/* (SIOCIWFIRSTPRIV + 12) is currently unused */
|
||||
/* (SIOCIWFIRSTPRIV + 14) is currently unused */
|
||||
/* (SIOCIWFIRSTPRIV + 15) is currently unused */
|
||||
|
||||
#ifdef FEATURE_OEM_DATA_SUPPORT
|
||||
/* Private ioctls for setting the measurement configuration */
|
||||
|
@ -4948,287 +4943,6 @@ static int iw_get_tspec(struct net_device *dev, struct iw_request_info *info,
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
#ifdef FEATURE_WLAN_WAPI
|
||||
static int iw_qcom_set_wapi_mode(struct net_device *dev, struct iw_request_info *info,
|
||||
union iwreq_data *wrqu, char *extra)
|
||||
{
|
||||
hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
|
||||
hdd_wext_state_t *pWextState = WLAN_HDD_GET_WEXT_STATE_PTR(pAdapter);
|
||||
hdd_station_ctx_t *pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
|
||||
tCsrRoamProfile *pRoamProfile = &pWextState->roamProfile;
|
||||
|
||||
WAPI_FUNCTION_MODE *pWapiMode = (WAPI_FUNCTION_MODE *)wrqu->data.pointer;
|
||||
|
||||
hddLog(LOG1, "The function iw_qcom_set_wapi_mode called");
|
||||
hddLog(LOG1, "%s: Received data %s", __func__, (char*)wrqu->data.pointer);
|
||||
hddLog(LOG1, "%s: Received length %d", __func__, wrqu->data.length);
|
||||
hddLog(LOG1, "%s: Input Data (wreq) WAPI Mode:%02d", __func__, pWapiMode->wapiMode);
|
||||
|
||||
if ((WLAN_HDD_GET_CTX(pAdapter))->isLogpInProgress)
|
||||
{
|
||||
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_FATAL,
|
||||
"%s:LOGP in Progress. Ignore!!!", __func__);
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
if(WZC_ORIGINAL == pWapiMode->wapiMode) {
|
||||
hddLog(LOG1, "%s: WAPI Mode Set to OFF", __func__);
|
||||
/* Set Encryption mode to defualt , this allows next successfull non-WAPI Association */
|
||||
pRoamProfile->EncryptionType.numEntries = 1;
|
||||
pRoamProfile->EncryptionType.encryptionType[0] = eCSR_ENCRYPT_TYPE_NONE;
|
||||
pRoamProfile->mcEncryptionType.numEntries = 1;
|
||||
pRoamProfile->mcEncryptionType.encryptionType[0] = eCSR_ENCRYPT_TYPE_NONE;
|
||||
|
||||
pRoamProfile->AuthType.numEntries = 1;
|
||||
pHddStaCtx->conn_info.authType = eCSR_AUTH_TYPE_OPEN_SYSTEM;
|
||||
pRoamProfile->AuthType.authType[0] = pHddStaCtx->conn_info.authType;
|
||||
}
|
||||
else if(WAPI_EXTENTION == pWapiMode->wapiMode) {
|
||||
hddLog(LOG1, "%s: WAPI Mode Set to ON", __func__);
|
||||
}
|
||||
else
|
||||
return -EINVAL;
|
||||
|
||||
pAdapter->wapi_info.nWapiMode = pWapiMode->wapiMode;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int iw_qcom_get_wapi_mode(struct net_device *dev, struct iw_request_info *info,
|
||||
union iwreq_data *wrqu, char *extra)
|
||||
{
|
||||
hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
|
||||
WAPI_FUNCTION_MODE *pWapiMode = (WAPI_FUNCTION_MODE *)(extra);
|
||||
|
||||
if ((WLAN_HDD_GET_CTX(pAdapter))->isLogpInProgress)
|
||||
{
|
||||
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_FATAL,
|
||||
"%s:LOGP in Progress. Ignore!!!", __func__);
|
||||
return -EBUSY;
|
||||
}
|
||||
hddLog(LOG1, "The function iw_qcom_get_wapi_mode called");
|
||||
|
||||
pWapiMode->wapiMode = pAdapter->wapi_info.nWapiMode;
|
||||
hddLog(LOG1, "%s: GET WAPI Mode Value:%02d", __func__, pWapiMode->wapiMode);
|
||||
printk("\nGET WAPI MODE:%d",pWapiMode->wapiMode);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int iw_qcom_set_wapi_assoc_info(struct net_device *dev, struct iw_request_info *info,
|
||||
union iwreq_data *wrqu, char *extra)
|
||||
{
|
||||
hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
|
||||
// WAPI_AssocInfo *pWapiAssocInfo = (WAPI_AssocInfo *)(wrqu->data.pointer);
|
||||
WAPI_AssocInfo *pWapiAssocInfo = (WAPI_AssocInfo *)(extra);
|
||||
int i = 0, j = 0;
|
||||
hddLog(LOG1, "The function iw_qcom_set_wapi_assoc_info called");
|
||||
hddLog(LOG1, "%s: Received length %d", __func__, wrqu->data.length);
|
||||
hddLog(LOG1, "%s: Received data %s", __func__, (char*)wrqu->data.pointer);
|
||||
hddLog(LOG1, "%s: Received data %s", __func__, (char*)extra);
|
||||
|
||||
if ((WLAN_HDD_GET_CTX(pAdapter))->isLogpInProgress)
|
||||
{
|
||||
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_FATAL,
|
||||
"%s:LOGP in Progress. Ignore!!!", __func__);
|
||||
return -EBUSY;
|
||||
}
|
||||
VOS_ASSERT(pWapiAssocInfo);
|
||||
|
||||
hddLog(LOG1, "%s: INPUT DATA:\nElement ID:0x%02x Length:0x%02x Version:0x%04x\n",__func__,pWapiAssocInfo->elementID,pWapiAssocInfo->length,pWapiAssocInfo->version);
|
||||
hddLog(LOG1,"%s: akm Suite Cnt:0x%04x",__func__,pWapiAssocInfo->akmSuiteCount);
|
||||
for(i =0 ; i < 16 ; i++)
|
||||
hddLog(LOG1,"akm suite[%02d]:0x%08lx",i,pWapiAssocInfo->akmSuite[i]);
|
||||
|
||||
hddLog(LOG1,"%s: Unicast Suite Cnt:0x%04x",__func__,pWapiAssocInfo->unicastSuiteCount);
|
||||
for(i =0 ; i < 16 ; i++)
|
||||
hddLog(LOG1, "Unicast suite[%02d]:0x%08lx",i,pWapiAssocInfo->unicastSuite[i]);
|
||||
|
||||
hddLog(LOG1,"%s: Multicast suite:0x%08lx Wapi capa:0x%04x",__func__,pWapiAssocInfo->multicastSuite,pWapiAssocInfo->wapiCability);
|
||||
hddLog(LOG1, "%s: BKID Cnt:0x%04x\n",__func__,pWapiAssocInfo->bkidCount);
|
||||
for(i = 0 ; i < 16 ; i++) {
|
||||
hddLog(LOG1, "BKID List[%02d].bkid:0x",i);
|
||||
for(j = 0 ; j < 16 ; j++)
|
||||
hddLog(LOG1,"%02x",pWapiAssocInfo->bkidList[i].bkid[j]);
|
||||
}
|
||||
|
||||
/* We are not using the entire IE as provided by the supplicant.
|
||||
* This is being calculated by SME. This is the same as in the
|
||||
* case of WPA. Only the auth mode information needs to be
|
||||
* extracted here*/
|
||||
if ( pWapiAssocInfo->akmSuite[0] == WAPI_PSK_AKM_SUITE ) {
|
||||
hddLog(LOG1, "%s: WAPI AUTH MODE SET TO PSK",__func__);
|
||||
pAdapter->wapi_info.wapiAuthMode = WAPI_AUTH_MODE_PSK;
|
||||
}
|
||||
|
||||
if ( pWapiAssocInfo->akmSuite[0] == WAPI_CERT_AKM_SUITE) {
|
||||
hddLog(LOG1, "%s: WAPI AUTH MODE SET TO CERTIFICATE",__func__);
|
||||
pAdapter->wapi_info.wapiAuthMode = WAPI_AUTH_MODE_CERT;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int iw_qcom_set_wapi_key(struct net_device *dev, struct iw_request_info *info,
|
||||
union iwreq_data *wrqu, char *extra)
|
||||
{
|
||||
hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
|
||||
hdd_station_ctx_t *pHddStaCtx = WLAN_HDD_GET_STATION_CTX_PTR(pAdapter);
|
||||
eHalStatus halStatus = eHAL_STATUS_SUCCESS;
|
||||
tANI_U32 roamId = 0xFF;
|
||||
tANI_U8 *pKeyPtr = NULL;
|
||||
v_BOOL_t isConnected = TRUE;
|
||||
tCsrRoamSetKey setKey;
|
||||
int i = 0;
|
||||
WLAN_WAPI_KEY *pWapiKey = (WLAN_WAPI_KEY *)(extra);
|
||||
|
||||
if ((WLAN_HDD_GET_CTX(pAdapter))->isLogpInProgress)
|
||||
{
|
||||
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_FATAL,
|
||||
"%s:LOGP in Progress. Ignore!!!", __func__);
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
hddLog(LOG1, "The function iw_qcom_set_wapi_key called ");
|
||||
hddLog(LOG1, "%s: Received length %d", __func__, wrqu->data.length);
|
||||
hddLog(LOG1, "%s: Received data %s", __func__, (char*)wrqu->data.pointer);
|
||||
hddLog(LOG1, "%s: Received data %s", __func__, (char*)extra);
|
||||
|
||||
hddLog(LOG1,":%s: INPUT DATA:\nKey Type:0x%02x Key Direction:0x%02x KEY ID:0x%02x\n", __func__, pWapiKey->keyType, pWapiKey->keyDirection, pWapiKey->keyId);
|
||||
hddLog(LOG1,"Add Index:0x");
|
||||
for(i =0 ; i < 12 ; i++)
|
||||
hddLog(LOG1,"%02x",pWapiKey->addrIndex[i]);
|
||||
|
||||
hddLog(LOG1,"\n%s: WAPI ENCRYPTION KEY LENGTH:0x%04x", __func__,pWapiKey->wpiekLen);
|
||||
hddLog(LOG1, "WAPI ENCRYPTION KEY:0x");
|
||||
for(i =0 ; i < 16 ; i++)
|
||||
hddLog(LOG1,"%02x",pWapiKey->wpiek[i]);
|
||||
|
||||
hddLog(LOG1,"\n%s: WAPI INTEGRITY CHECK KEY LENGTH:0x%04x", __func__,pWapiKey->wpickLen);
|
||||
hddLog(LOG1,"WAPI INTEGRITY CHECK KEY:0x");
|
||||
for(i =0 ; i < 16 ; i++)
|
||||
hddLog(LOG1,"%02x",pWapiKey->wpick[i]);
|
||||
|
||||
hddLog(LOG1,"\nWAPI PN NUMBER:0x");
|
||||
for(i = 0 ; i < 16 ; i++)
|
||||
hddLog(LOG1,"%02x",pWapiKey->pn[i]);
|
||||
|
||||
// Clear the setkey memory
|
||||
vos_mem_zero(&setKey,sizeof(tCsrRoamSetKey));
|
||||
// Store Key ID
|
||||
setKey.keyId = (unsigned char)( pWapiKey->keyId );
|
||||
// SET WAPI Encryption
|
||||
setKey.encType = eCSR_ENCRYPT_TYPE_WPI;
|
||||
// Key Directionn both TX and RX
|
||||
setKey.keyDirection = eSIR_TX_RX; // Do WE NEED to update this based on Key Type as GRP/UNICAST??
|
||||
// the PAE role
|
||||
setKey.paeRole = 0 ;
|
||||
|
||||
switch ( pWapiKey->keyType )
|
||||
{
|
||||
case PAIRWISE_KEY:
|
||||
{
|
||||
isConnected = hdd_connIsConnected(pHddStaCtx);
|
||||
vos_mem_copy(setKey.peerMac,&pHddStaCtx->conn_info.bssId,WNI_CFG_BSSID_LEN);
|
||||
break;
|
||||
}
|
||||
case GROUP_KEY:
|
||||
{
|
||||
vos_set_macaddr_broadcast( (v_MACADDR_t *)setKey.peerMac );
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
//Any other option is invalid.
|
||||
VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
|
||||
"[%4d] %s() failed to Set Key. Invalid key type %d", __LINE__,__func__ , -1 );
|
||||
|
||||
hddLog(LOGE," %s: Error WAPI Key Add Type",__func__);
|
||||
halStatus = !eHAL_STATUS_SUCCESS; // NEED TO UPDATE THIS WITH CORRECT VALUE
|
||||
break; // NEED RETURN FROM HERE ????
|
||||
}
|
||||
}
|
||||
|
||||
// Concatenating the Encryption Key (EK) and the MIC key (CK): EK followed by CK
|
||||
setKey.keyLength = (v_U16_t)((pWapiKey->wpiekLen)+(pWapiKey->wpickLen));
|
||||
pKeyPtr = setKey.Key;
|
||||
memcpy( pKeyPtr, pWapiKey->wpiek, pWapiKey->wpiekLen );
|
||||
pKeyPtr += pWapiKey->wpiekLen;
|
||||
memcpy( pKeyPtr, pWapiKey->wpick, pWapiKey->wpickLen );
|
||||
|
||||
// Set the new key with SME.
|
||||
pHddStaCtx->roam_info.roamingState = HDD_ROAM_STATE_SETTING_KEY;
|
||||
|
||||
if ( isConnected ) {
|
||||
halStatus = sme_RoamSetKey( WLAN_HDD_GET_HAL_CTX(pAdapter), pAdapter->sessionId, &setKey, &roamId );
|
||||
if ( halStatus != eHAL_STATUS_SUCCESS )
|
||||
{
|
||||
VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR,
|
||||
"[%4d] sme_RoamSetKey returned ERROR status= %d", __LINE__, halStatus );
|
||||
|
||||
pHddStaCtx->roam_info.roamingState = HDD_ROAM_STATE_NONE;
|
||||
}
|
||||
}
|
||||
#if 0 /// NEED TO CHECK ON THIS
|
||||
else
|
||||
{
|
||||
// Store the keys in the adapter to be moved to the profile & passed to
|
||||
// SME in the ConnectRequest if we are not yet in connected state.
|
||||
memcpy( &pAdapter->setKey[ setKey.keyId ], &setKey, sizeof( setKey ) );
|
||||
pAdapter->fKeySet[ setKey.keyId ] = TRUE;
|
||||
|
||||
VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO_MED,
|
||||
" Saving key [idx= %d] to apply when moving to connected state ",
|
||||
setKey.keyId );
|
||||
|
||||
}
|
||||
#endif
|
||||
return halStatus;
|
||||
}
|
||||
|
||||
static int iw_qcom_set_wapi_bkid(struct net_device *dev, struct iw_request_info *info,
|
||||
union iwreq_data *wrqu, char *extra)
|
||||
{
|
||||
hdd_adapter_t *pAdapter = WLAN_HDD_GET_PRIV_PTR(dev);
|
||||
#ifdef WLAN_DEBUG
|
||||
int i = 0;
|
||||
WLAN_BKID_LIST *pBkid = ( WLAN_BKID_LIST *) (wrqu->data.pointer);
|
||||
#endif
|
||||
|
||||
hddLog(LOG1, "The function iw_qcom_set_wapi_bkid called");
|
||||
hddLog(LOG1, "%s: Received length %d", __func__, wrqu->data.length);
|
||||
hddLog(LOG1, "%s: Received data %s", __func__, (char*)wrqu->data.pointer);
|
||||
hddLog(LOG1, "%s: Received data %s", __func__, (char*)extra);
|
||||
|
||||
hddLog(LOG1,"%s: INPUT DATA:\n BKID Length:0x%08lx\n", __func__,pBkid->length);
|
||||
hddLog(LOG1,"%s: BKID Cnt:0x%04lx",pBkid->BKIDCount);
|
||||
|
||||
hddLog(LOG1,"BKID KEY LIST[0]:0x");
|
||||
|
||||
if ((WLAN_HDD_GET_CTX(pAdapter))->isLogpInProgress)
|
||||
{
|
||||
VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_FATAL,
|
||||
"%s:LOGP in Progress. Ignore!!!", __func__);
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
#ifdef WLAN_DEBUG
|
||||
for(i =0 ; i < 16 ; i++)
|
||||
hddLog(LOG1,"%02x",pBkid->BKID[0].bkid[i]);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int iw_qcom_get_wapi_bkid(struct net_device *dev, struct iw_request_info *info,
|
||||
union iwreq_data *wrqu, char *extra)
|
||||
{
|
||||
/* Yet to implement this function, 19th April 2010 */
|
||||
hddLog(LOG1, "The function iw_qcom_get_wapi_bkid called ");
|
||||
|
||||
return 0;
|
||||
}
|
||||
#endif /* FEATURE_WLAN_WAPI */
|
||||
|
||||
#ifdef WLAN_FEATURE_VOWIFI_11R
|
||||
//
|
||||
//
|
||||
|
@ -6895,14 +6609,6 @@ static const iw_handler we_private[] = {
|
|||
[WLAN_PRIV_GET_OEM_DATA_RSP - SIOCIWFIRSTPRIV] = iw_get_oem_data_rsp, //oem data req Specifc
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_WLAN_WAPI
|
||||
[WLAN_PRIV_SET_WAPI_MODE - SIOCIWFIRSTPRIV] = iw_qcom_set_wapi_mode,
|
||||
[WLAN_PRIV_GET_WAPI_MODE - SIOCIWFIRSTPRIV] = iw_qcom_get_wapi_mode,
|
||||
[WLAN_PRIV_SET_WAPI_ASSOC_INFO - SIOCIWFIRSTPRIV] = iw_qcom_set_wapi_assoc_info,
|
||||
[WLAN_PRIV_SET_WAPI_KEY - SIOCIWFIRSTPRIV] = iw_qcom_set_wapi_key,
|
||||
[WLAN_PRIV_SET_WAPI_BKID - SIOCIWFIRSTPRIV] = iw_qcom_set_wapi_bkid,
|
||||
[WLAN_PRIV_GET_WAPI_BKID - SIOCIWFIRSTPRIV] = iw_qcom_get_wapi_bkid,
|
||||
#endif /* FEATURE_WLAN_WAPI */
|
||||
#ifdef WLAN_FEATURE_VOWIFI_11R
|
||||
[WLAN_PRIV_SET_FTIES - SIOCIWFIRSTPRIV] = iw_set_fties,
|
||||
#endif
|
||||
|
@ -7251,44 +6957,6 @@ static const struct iw_priv_args we_private_args[] = {
|
|||
"get_oem_data_rsp" },
|
||||
#endif
|
||||
|
||||
#ifdef FEATURE_WLAN_WAPI
|
||||
/* handlers for main ioctl SET_WAPI_MODE */
|
||||
{ WLAN_PRIV_SET_WAPI_MODE,
|
||||
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
|
||||
0,
|
||||
"SET_WAPI_MODE" },
|
||||
|
||||
/* handlers for main ioctl GET_WAPI_MODE */
|
||||
{ WLAN_PRIV_GET_WAPI_MODE,
|
||||
0,
|
||||
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
|
||||
"GET_WAPI_MODE" },
|
||||
|
||||
/* handlers for main ioctl SET_ASSOC_INFO */
|
||||
{ WLAN_PRIV_SET_WAPI_ASSOC_INFO,
|
||||
IW_PRIV_TYPE_BYTE | IW_PRIV_SIZE_FIXED | 400,
|
||||
0,
|
||||
"SET_WAPI_ASSOC" },
|
||||
|
||||
/* handlers for main ioctl SET_WAPI_KEY */
|
||||
{ WLAN_PRIV_SET_WAPI_KEY,
|
||||
IW_PRIV_TYPE_BYTE | IW_PRIV_SIZE_FIXED | 71,
|
||||
0,
|
||||
"SET_WAPI_KEY" },
|
||||
|
||||
/* handlers for main ioctl SET_WAPI_BKID */
|
||||
{ WLAN_PRIV_SET_WAPI_BKID,
|
||||
IW_PRIV_TYPE_BYTE | IW_PRIV_SIZE_FIXED | 24,
|
||||
0,
|
||||
"SET_WAPI_BKID" },
|
||||
|
||||
/* handlers for main ioctl GET_WAPI_BKID */
|
||||
{ WLAN_PRIV_GET_WAPI_BKID,
|
||||
0,
|
||||
IW_PRIV_TYPE_BYTE | IW_PRIV_SIZE_FIXED | 24,
|
||||
"GET_WAPI_BKID" },
|
||||
#endif /* FEATURE_WLAN_WAPI */
|
||||
|
||||
/* handlers for main ioctl - host offload */
|
||||
{
|
||||
WLAN_PRIV_SET_HOST_OFFLOAD,
|
||||
|
|
Loading…
Reference in a new issue