📄 intprismmibioctl.c
字号:
{ ltv.type = WVLAN_RID_TX_CRYPT_KEY; status = intPrismLTVRead(pWlanDev, <v); pInfo->dot11WEPDefaultKeyID = ltv.data[0]; } else { ltv.type = INTERSIL_RID_WEP_DEFAULT_KEY_ID; status = intPrismLTVRead(pWlanDev, <v); pInfo->dot11WEPDefaultKeyID = ltv.data[0]; } } else /* Set the value */ { temp = pInfo->dot11WEPDefaultKeyID; status = intPrismIoctl((END_OBJ *)pWlanDev, EIOCSWEPDEFAULTKEY, (caddr_t)(INT32)temp); } break; case SMT_PRIVACY_ENTRY_KEY_LEN: if (cmd != EIOCGMIB2STA) { status = ERROR; break; } pInfo->dot11WEPKeyMappingLength = 0; break; case SMT_PRIVACY_ENTRY_EX_UENCRP: if (cmd != EIOCGMIB2STA) { status = ERROR; break; } pInfo->dot11ExcludeUnencrypted = DOT11_TRUE; break; case SMT_PRIVACY_ENTRY_ICV_ERR_CNT: { WLAN_STATS stats; if (cmd != EIOCGMIB2STA) { /* This is a read-only field */ status = ERROR; break; } status = intPrismIoctl((END_OBJ *)pWlanDev, EIOCGSTATS, (caddr_t)&stats); pInfo->dot11WEPICVErrorCount = stats.RxDiscardsWEPUndecryptable; break; } case SMT_PRIVACY_ENTRY_EX_CNT: status = ERROR; break; default: WLAN_DEBUG(DEBUG_INFO, ("intPrismMibIoctl: Invalid MIB " "leaf: 0x%04x\n", mibLeaf)); status = ERROR; break; } break; } /* Mac group */ case OPERATION_ENTRY: { OPERATION_ENTRY_T * pInfo; UINT16 temp; pInfo = &pMib->dot11Mac.opEntry; switch(mibLeaf) { case MAC_ADDRESS: if (cmd == EIOCGMIB2STA) { bcopy((char *) pWlanDev->MACAddr, (char *) pInfo->dot11MACAddress, WLAN_ENET_ADDR_LEN); } else /* Must be EIOCSMIB2STA */ { WLAN_DEBUG(DEBUG_ERROR, ("intPrismMibIoctl: Cannot set" " station MAC addr\n")); status = ERROR; } case MAC_RTS_THRESHOLD: if (cmd == EIOCGMIB2STA) { status = intPrismIoctl((END_OBJ *)pWlanDev, EIOCGCTSRTS, (caddr_t)&temp); pInfo->dot11RTSThreshold = temp; } else /* Must be EIOCSMIB2STA */ { temp = pInfo->dot11RTSThreshold; status = intPrismIoctl((END_OBJ *)pWlanDev, EIOCSCTSRTS, (caddr_t)(INT32)temp); } break; case MAC_SHORT_RETRY_LIMIT: status = ERROR; break; case MAC_LONG_RETRY_LIMIT: status = ERROR; break; case MAC_FRAG_THRESHOLD: if (cmd == EIOCGMIB2STA) { status = intPrismIoctl((END_OBJ *)pWlanDev, EIOCGFRAGTHRESH, (caddr_t)&temp); pInfo->dot11FragmentationThreshold = temp; } else /* Must be EIOCSMIB2STA */ { temp = pInfo->dot11FragmentationThreshold; status = intPrismIoctl((END_OBJ *)pWlanDev, EIOCSFRAGTHRESH, (caddr_t)(INT32)temp); } break; case MAC_MAX_TX_MSDU_LIFE: status = ERROR; break; case MAC_MAX_RX_LIFE: status = ERROR; break; case MAC_MANF_ID: status = ERROR; break; case MAC_PROD_ID: status = ERROR; break; default: WLAN_DEBUG(DEBUG_INFO, ("intPrismMibIoctl: Invalid MIB " "leaf: 0x%04x\n", mibLeaf)); status = ERROR; break; } break; } case COUNTERS_ENTRY: { COUNTERS_ENTRY_T * pInfo; WLAN_STATS stats; pInfo = &pMib->dot11Mac.cntEntry; if (cmd != EIOCGMIB2STA) { /* This is a read-only field */ status = ERROR; break; } if ((status = intPrismIoctl((END_OBJ *)pWlanDev, EIOCGSTATS, (caddr_t)&stats)) != OK) { break; } switch(mibLeaf) { case MAC_TX_FRAG_COUNT: pInfo->dot11TransmittedFragmentCount = stats.TxFragments; break; case MAC_MCAST_TX_FRAME_COUNT: pInfo->dot11MulticastTransmittedFrameCount = stats.TxMulticastFrames; break; case MAC_FAILED_COUNT: pInfo->dot11FailedCount = stats.TxRetryLimitExceeded; break; case MAC_RETRY_COUNT: pInfo->dot11RetryCount = stats.TxSingleRetryFrames; break; case MAC_MULTRETRY_COUNT: pInfo->dot11MultipleRetryCount = stats.TxMultipleRetryFrames; break; case MAC_DUPLICATE_COUNT: status = ERROR; break; case MAC_RTSSUCCESS_COUNT: status = ERROR; break; case MAC_RTSFAIL_COUNT: status = ERROR; break; case MAC_ACK_FAIL_COUNT: status = ERROR; break; case MAC_RX_FRAG_COUNT: break; case MAC_MCAST_RX_FRAME_COUNT: pInfo->dot11ReceivedFragmentCount = stats.RxFragments; break; case MAC_FCS_ERR_COUNT: pInfo->dot11FCSErrorCount = stats.RxFCSErrors; break; case MAC_TX_FRAME_COUNT: pInfo->dot11TransmittedFrameCount = stats.TxUnicastFrames; break; case MAC_WEP_UNDECRYPT_COUNT: pInfo->dot11WEPUndecryptableCount = stats.RxDiscardsWEPUndecryptable; break; default: status = ERROR; break; } } break; case GROUP_ADDRESSES_ENTRY: switch(mibLeaf) { default: WLAN_DEBUG(DEBUG_INFO, ("intPrismMibIoctl: Invalid MIB " "leaf: 0x%04x\n", mibLeaf)); status = ERROR; break; } break; /* Phy group */ case PHY_OPERATION_ENTRY: switch(mibLeaf) { default: WLAN_DEBUG(DEBUG_INFO, ("intPrismMibIoctl: Invalid MIB " "leaf: 0x%04x\n", mibLeaf)); status = ERROR; break; } break; case PHY_DSSS_ENTRY: switch(mibLeaf) { default: WLAN_DEBUG(DEBUG_INFO, ("intPrismMibIoctl: Invalid MIB " "leaf: 0x%04x\n", mibLeaf)); status = ERROR; break; } break; /* Resource group */ case RESOURCE_INFO_ENTRY: switch(mibLeaf) { default: WLAN_DEBUG(DEBUG_INFO, ("intPrismMibIoctl: Invalid MIB " "leaf: 0x%04x\n", mibLeaf)); status = ERROR; break; } break; default: WLAN_DEBUG(DEBUG_INFO, ("intPrismMibIoctl: Invalid Mib Group : " "0x%04x\n", mibGroup)); status = EINVAL; break; } return status; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -