| /* |
| ************************************************************************* |
| * 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); |
| |
| } |