⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 intprismmibioctl.c

📁 vworks 下wlan的实现代码
💻 C
📖 第 1 页 / 共 3 页
字号:
                            {                            ltv.type = WVLAN_RID_TX_CRYPT_KEY;                            status = intPrismLTVRead(pWlanDev, &ltv);                            pInfo->dot11WEPDefaultKeyID = ltv.data[0];                            }                        else                            {                            ltv.type = INTERSIL_RID_WEP_DEFAULT_KEY_ID;                            status = intPrismLTVRead(pWlanDev, &ltv);                            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 + -