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

📄 rtmp_info.c

📁 Ralink RT61 SoftAP Driver source code. RT61:MiniPCI
💻 C
📖 第 1 页 / 共 5 页
字号:
		else
		{
			// each mode has different restart method
			if (pAdapter->PortCfg.RadarDetect.RDMode == RD_SILENCE_MODE)
			{
				ApStop(pAdapter, FALSE);
				ApStartUp(pAdapter, FALSE);
			}
			else if (pAdapter->PortCfg.RadarDetect.RDMode == RD_SWITCHING_MODE)
			{
			}
			else if (pAdapter->PortCfg.RadarDetect.RDMode == RD_NORMAL_MODE)
			{
				ApStop(pAdapter, FALSE);
				ApStartUp(pAdapter, FALSE);
				AsicEnableBssSync(pAdapter);
			}
		}

		DBGPRINT(RT_DEBUG_TRACE, "I/F(ra%d) Set_SSID_Proc::(Len=%d,Ssid=%s)\n", pAdapter->IoctlIF,
			pAdapter->PortCfg.MBSSID[pAdapter->IoctlIF].SsidLen, pAdapter->PortCfg.MBSSID[pAdapter->IoctlIF].Ssid);
	}
	else
		success = FALSE;

	return success;
}

/* 
    ==========================================================================
    Description:
        Set Wireless Mode
    Return:
        TRUE if all parameters are OK, FALSE otherwise
    ==========================================================================
*/
INT	Set_WirelessMode_Proc(
	IN	PRTMP_ADAPTER	pAd, 
	IN	PUCHAR			arg)
{
	ULONG	WirelessMode;
	INT		i, success = TRUE;

	WirelessMode = simple_strtol(arg, 0, 10);

	if(WirelessMode == PHY_11A)
		pAd->PortCfg.PhyMode = PHY_11A;
	else if(WirelessMode == PHY_11B)
		pAd->PortCfg.PhyMode = PHY_11B;
	else if(WirelessMode == PHY_11BG_MIXED)
		pAd->PortCfg.PhyMode = PHY_11BG_MIXED;
	else if(WirelessMode == PHY_11G)
		pAd->PortCfg.PhyMode = PHY_11G;
	else
		success = FALSE;

	BuildChannelList(pAd);

	for(i=0; i<pAd->PortCfg.BssidNum;i++)
	{
		RTMPSetPhyMode(pAd, pAd->PortCfg.PhyMode, i);
		RTMPBuildDesireRate(pAd, i,	pAd->PortCfg.MBSSID[i].DesiredRatesIndex);
	}

	// it is needed to set SSID to take effect
	DBGPRINT(RT_DEBUG_TRACE, "Set_WirelessMode_Proc::(=%d)\n", pAd->PortCfg.PhyMode);
	
	return success;
}

/* 
    ==========================================================================
    Description:
        Set TxRate
    Return:
        TRUE if all parameters are OK, FALSE otherwise
    ==========================================================================
*/
INT Set_TxRate_Proc(
	IN	PRTMP_ADAPTER	pAd, 
	IN	PUCHAR			arg)
{
	NdisZeroMemory(pAd->PortCfg.MBSSID[pAd->IoctlIF].DesiredRates, MAX_LEN_OF_SUPPORTED_RATES);

	pAd->PortCfg.MBSSID[pAd->IoctlIF].DesiredRatesIndex = simple_strtol(arg, 0, 10);
	RTMPBuildDesireRate(pAd, pAd->IoctlIF, pAd->PortCfg.MBSSID[pAd->IoctlIF].DesiredRatesIndex);
	
	MlmeUpdateTxRates(pAd);

	return TRUE;
}

/* 
    ==========================================================================
    Description:
        Set BasicRate
    Return:
        TRUE if all parameters are OK, FALSE otherwise
    ==========================================================================
*/
INT Set_BasicRate_Proc(
	IN	PRTMP_ADAPTER	pAd, 
	IN	PUCHAR			arg)
{
    pAd->PortCfg.BasicRateBitMap = (ULONG) simple_strtol(arg, 0, 10);

    if (pAd->PortCfg.BasicRateBitMap > 4095) // (2 ^ MAX_LEN_OF_SUPPORTED_RATES) -1
        return FALSE;

    MlmeUpdateTxRates(pAd);

    DBGPRINT(RT_DEBUG_TRACE, "Set_BasicRate_Proc::(BasicRateBitMap=0x%08x)\n", pAd->PortCfg.BasicRateBitMap);
    
    return TRUE;
}

/* 
    ==========================================================================
    Description:
        Set Channel
    Return:
        TRUE if all parameters are OK, FALSE otherwise
    ==========================================================================
*/
INT	Set_Channel_Proc(
	IN	PRTMP_ADAPTER	pAd, 
	IN	PUCHAR			arg)
{
	UCHAR channel;	

	channel = (UCHAR) simple_strtol(arg, 0, 10);

	pAd->PortCfg.Channel = channel;
	if (pAd->PortCfg.RadarDetect.IEEE80211H == FALSE)
	{
		ApStop(pAd, TRUE);
		ApStartUp(pAd, TRUE);
	}
	else
	{
		if (pAd->PortCfg.RadarDetect.RDMode == RD_SILENCE_MODE)
		{
			ApStop(pAd, TRUE);
			ApStartUp(pAd, TRUE);
		}
		else
		{
			pAd->PortCfg.RadarDetect.RDMode = RD_SWITCHING_MODE;
			pAd->PortCfg.RadarDetect.CSCount = 0;
		}
	}
	
	DBGPRINT(RT_DEBUG_TRACE, "Set_Channel_Proc::(Channel=%d)\n", pAd->PortCfg.Channel);

	return TRUE;
}

/* 
    ==========================================================================
    Description:
        Set Beacon Period
    Return:
        TRUE if all parameters are OK, FALSE otherwise
    ==========================================================================
*/
INT	Set_BeaconPeriod_Proc(
	IN	PRTMP_ADAPTER	pAd, 
	IN	PUCHAR			arg)
{
	USHORT BeaconPeriod;
	INT   success = FALSE;

	BeaconPeriod = (USHORT) simple_strtol(arg, 0, 10);
	if((BeaconPeriod >= 20) && (BeaconPeriod < 1024))
	{
		pAd->PortCfg.BeaconPeriod = BeaconPeriod;
		success = TRUE;		
	}
	else
		success = FALSE;

	DBGPRINT(RT_DEBUG_TRACE, "Set_BeaconPeriod_Proc::(BeaconPeriod=%d)\n", pAd->PortCfg.BeaconPeriod);

	return success;
}

/* 
    ==========================================================================
    Description:
        Set Dtim Period
    Return:
        TRUE if all parameters are OK, FALSE otherwise
    ==========================================================================
*/
INT	Set_DtimPeriod_Proc(
	IN	PRTMP_ADAPTER	pAd, 
	IN	PUCHAR			arg)
{
	USHORT DtimPeriod;
	INT   success = FALSE;

	DtimPeriod = (USHORT) simple_strtol(arg, 0, 10);
	if((DtimPeriod >= 1) && (DtimPeriod <= 255))
	{
		pAd->Mlme.DtimPeriod = DtimPeriod;
		success = TRUE;
	}
	else
		success = FALSE;

	DBGPRINT(RT_DEBUG_TRACE, "Set_DtimPeriod_Proc::(DtimPeriod=%d)\n", pAd->Mlme.DtimPeriod);

	return success;
}

/* 
    ==========================================================================
    Description:
        Set Tx power
    Return:
        TRUE if all parameters are OK, FALSE otherwise
    ==========================================================================
*/
INT	Set_TxPower_Proc(
	IN	PRTMP_ADAPTER	pAd, 
	IN	PUCHAR			arg)
{
	ULONG TxPower;
	INT   success = FALSE;

	TxPower = (ULONG) simple_strtol(arg, 0, 10);
	if (TxPower <= 100)
    {
		pAd->PortCfg.TxPowerPercentage = TxPower;
		success = TRUE;
	}
	else
		success = FALSE;

	DBGPRINT(RT_DEBUG_TRACE, "Set_TxPower_Proc::(TxPowerPercentage=%d)\n", pAd->PortCfg.TxPowerPercentage);

	return success;
}

#ifdef DBG
/* 
    ==========================================================================
    Description:
        For Debug information
    Return:
        TRUE if all parameters are OK, FALSE otherwise
    ==========================================================================
*/
INT	Set_Debug_Proc(
	IN	PRTMP_ADAPTER	pAd, 
	IN	PUCHAR			arg)
{
	DBGPRINT(RT_DEBUG_TRACE, "==> Set_Debug_Proc *******************\n");

    if(simple_strtol(arg, 0, 10) <= RT_DEBUG_LOUD)
        RTDebugLevel = simple_strtol(arg, 0, 10);

	DBGPRINT(RT_DEBUG_TRACE, "<== Set_Debug_Proc(RTDebugLevel = %d)\n", RTDebugLevel);

	return TRUE;
}
#endif

/* 
    ==========================================================================
    Description:
        Disable/enable OLBC detection manually
    Return:
        TRUE if all parameters are OK, FALSE otherwise
    ==========================================================================
*/
INT	Set_OLBCDetection_Proc(
	IN	PRTMP_ADAPTER	pAd, 
	IN	PUCHAR			arg)
{
	switch (simple_strtol(arg, 0, 10))
	{
		case 0: //enable OLBC detect
			pAd->PortCfg.DisableOLBCDetect = 0;
			break;
		case 1: //disable OLBC detect
			pAd->PortCfg.DisableOLBCDetect = 1;
			break;
		default:  //Invalid argument 
			return FALSE;
	}

	return TRUE;
}

/* 
    ==========================================================================
    Description:
        Set 11B/11G Protection
    Return:
        TRUE if all parameters are OK, FALSE otherwise
    ==========================================================================
*/
INT	Set_BGProtection_Proc(
	IN	PRTMP_ADAPTER	pAd, 
	IN	PUCHAR			arg)
{
	switch (simple_strtol(arg, 0, 10))
	{
		case 0: //AUTO
			pAd->PortCfg.UseBGProtection = 0;
			break;
		case 1: //Always On
			pAd->PortCfg.UseBGProtection = 1;
			break;
		case 2: //Always OFF
			pAd->PortCfg.UseBGProtection = 2;
			break;		
		default:  //Invalid argument 
			return FALSE;
	}
	ApUpdateCapabilityAndErpIe(pAd);
	DBGPRINT(RT_DEBUG_TRACE, "Set_BGProtection_Proc::(BGProtection=%d)\n", pAd->PortCfg.UseBGProtection);	

	return TRUE;
}

/* 
    ==========================================================================
    Description:
        Set TxAntenna
    Return:
        TRUE if all parameters are OK, FALSE otherwise
    ==========================================================================
*/
INT	Set_TxAntenna_Proc(
	IN	PRTMP_ADAPTER	pAdapter, 
	IN	PUCHAR			arg)
{
	DBGPRINT(RT_DEBUG_TRACE, "Set_TxAntenna_Proc\n");	

	return TRUE;
}

/* 
    ==========================================================================
    Description:
        Set RxAntenna
    Return:
        TRUE if all parameters are OK, FALSE otherwise
    ==========================================================================
*/
INT	Set_RxAntenna_Proc(
	IN	PRTMP_ADAPTER	pAdapter, 
	IN	PUCHAR			arg)
{
	DBGPRINT(RT_DEBUG_TRACE, "Set_RxAntenna_Proc\n");

	return TRUE;
}

/* 
    ==========================================================================
    Description:
        Set TxPreamble
    Return:
        TRUE if all parameters are OK, FALSE otherwise
    ==========================================================================
*/
INT	Set_TxPreamble_Proc(
	IN	PRTMP_ADAPTER	pAd, 
	IN	PUCHAR			arg)
{
	switch (simple_strtol(arg, 0, 10))
	{
		case Rt802_11PreambleLong:
			pAd->PortCfg.TxPreamble = Rt802_11PreambleLong;
			break;
		case Rt802_11PreambleShort:
			pAd->PortCfg.TxPreamble = Rt802_11PreambleShort;
			break;
		default: //Invalid argument 
			return FALSE;
	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -