102 lines
2.9 KiB
C
102 lines
2.9 KiB
C
/*
|
|
*************************************************************************
|
|
* Ralink Tech Inc.
|
|
* 5F., No.36, Taiyuan St., Jhubei City,
|
|
* Hsinchu County 302,
|
|
* Taiwan, R.O.C.
|
|
*
|
|
* (c) Copyright 2002-2007, Ralink Technology, Inc.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
* This program is distributed in the hope that it will be useful, *
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
* GNU General Public License for more details. *
|
|
* *
|
|
* You should have received a copy of the GNU General Public License *
|
|
* along with this program; if not, write to the *
|
|
* Free Software Foundation, Inc., *
|
|
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
|
* *
|
|
*************************************************************************
|
|
|
|
Module Name:
|
|
rt_profile.c
|
|
|
|
Abstract:
|
|
|
|
Revision History:
|
|
Who When What
|
|
--------- ---------- ----------------------------------------------
|
|
*/
|
|
|
|
#include "rt_config.h"
|
|
|
|
|
|
NDIS_STATUS RTMPReadParametersHook(
|
|
IN PRTMP_ADAPTER pAd)
|
|
{
|
|
PSTRING src = NULL;
|
|
RTMP_OS_FD srcf;
|
|
RTMP_OS_FS_INFO osFSInfo;
|
|
INT retval = NDIS_STATUS_FAILURE;
|
|
PSTRING buffer;
|
|
|
|
buffer = kmalloc(MAX_INI_BUFFER_SIZE, MEM_ALLOC_FLAG);
|
|
if(buffer == NULL)
|
|
return NDIS_STATUS_FAILURE;
|
|
memset(buffer, 0x00, MAX_INI_BUFFER_SIZE);
|
|
|
|
{
|
|
|
|
#ifdef CONFIG_STA_SUPPORT
|
|
IF_DEV_CONFIG_OPMODE_ON_STA(pAd)
|
|
{
|
|
src = STA_PROFILE_PATH;
|
|
}
|
|
#endif // CONFIG_STA_SUPPORT //
|
|
#ifdef MULTIPLE_CARD_SUPPORT
|
|
src = (PSTRING)pAd->MC_FileName;
|
|
#endif // MULTIPLE_CARD_SUPPORT //
|
|
}
|
|
|
|
if (src && *src)
|
|
{
|
|
RtmpOSFSInfoChange(&osFSInfo, TRUE);
|
|
srcf = RtmpOSFileOpen(src, O_RDONLY, 0);
|
|
if (IS_FILE_OPEN_ERR(srcf))
|
|
{
|
|
DBGPRINT(RT_DEBUG_ERROR, ("Open file \"%s\" failed!\n", src));
|
|
}
|
|
else
|
|
{
|
|
retval =RtmpOSFileRead(srcf, buffer, MAX_INI_BUFFER_SIZE);
|
|
if (retval > 0)
|
|
{
|
|
RTMPSetProfileParameters(pAd, buffer);
|
|
retval = NDIS_STATUS_SUCCESS;
|
|
}
|
|
else
|
|
DBGPRINT(RT_DEBUG_ERROR, ("Read file \"%s\" failed(errCode=%d)!\n", src, retval));
|
|
|
|
retval = RtmpOSFileClose(srcf);
|
|
if ( retval != 0)
|
|
{
|
|
retval = NDIS_STATUS_FAILURE;
|
|
DBGPRINT(RT_DEBUG_ERROR, ("Close file \"%s\" failed(errCode=%d)!\n", src, retval));
|
|
}
|
|
}
|
|
|
|
RtmpOSFSInfoChange(&osFSInfo, FALSE);
|
|
}
|
|
|
|
kfree(buffer);
|
|
|
|
return (retval);
|
|
|
|
}
|