15fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi/* 25fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * Copyright 2012 The Android Open Source Project 35fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * 45fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * Licensed under the Apache License, Version 2.0 (the "License"); 55fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * you may not use this file except in compliance with the License. 65fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * You may obtain a copy of the License at 75fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * 85fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * http://www.apache.org/licenses/LICENSE-2.0 95fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * 105fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * Unless required by applicable law or agreed to in writing, software 115fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * distributed under the License is distributed on an "AS IS" BASIS, 125fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * See the License for the specific language governing permissions and 145fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * limitations under the License. 155fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi */ 165fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi 175fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi#ifndef __WFC_UTIL_FCTRL_H__ 185fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi#define __WFC_UTIL_FCTRL_H__ 195fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi 205fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi/* 215fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * wfc_util_fset_buffer 225fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * 235fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * return : void 245fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi */ 255fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choivoid wfc_util_fset_buffer(char *pFileName, int positionStart, unsigned char *pNewValue, int newValueLength); 265fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi 275fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi/* 285fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * wfc_util_fget_buffer 295fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * 305fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * return : it will return the length of the stored buffer value if procedure is success 315fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * or will return 0 if not. 325fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi */ 335fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choiextern int wfc_util_fget_buffer(char *pFileName, int positionStart, int lengthToRead, unsigned char *pValueBuff, int buffLength); 345fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi 355fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi/* 365fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * wfc_util_fset_string 375fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * 385fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * The following format string will be added or updated to the file pFileName. 395fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * [pSTagString][pNewValueString][pETagString] 405fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * 415fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * pFileName : file name and path 425fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * pEndOfCfg : tag string to notify the end of configuration file 435fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * pSTagString : tag string to notify purpose of the value 445fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * pETagString : tag string to notify the end of the value 455fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * pNewValueString : string to set for pSTagString 465fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * 475fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * return : void 485fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi */ 495fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choiextern void wfc_util_fset_string(char *pFileName, char *pEndOfCfg, char *pSTagString, char *pETagString, char *pNewValueString); 505fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi 515fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi/* 525fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * wfc_util_fget_string 535fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * 545fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * Read value from the following format string in the file pFileName. 555fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * [pSTagString][string value to read][pETagString] 565fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * 575fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * pFileName : file name and path 585fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * pEndOfCfg : tag string to notify the end of configuration file 595fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * pSTagString : tag string to notify purpose of the value 605fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * pETagString : tag string to notify the end of the value 615fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * pValueStringBuff : string buffer to get string value 625fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * stringBuffLength : the length of pValueStringBuff 635fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * 645fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * return : it will return the length of the stored string value if procedure is success 655fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * or will return 0 if not. 665fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi */ 675fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choiextern int wfc_util_fget_string(char *pFileName, char *pEndOfCfg, char *pSTagString, char *pETagString, char *pValueStringBuff, int stringBuffLength); 685fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi 695fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi/* 705fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * wfc_util_ffile_check 715fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * 725fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * check whether pDestFName file exist or not 735fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * 745fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * pFileName : file name and path 755fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * access_mode : R_OK | W_OK | X_OK | F_OK 765fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * 775fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * return : it will return 0 if the file exist 785fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * or will return -1 if not. 795fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi */ 805fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choiextern int wfc_util_ffile_check(char *pDestFName, int access_mode); 815fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi 825fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi/* 835fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * wfc_util_ffile_check_copy 845fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * 855fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * check whether pDestFName file exist if not it will copy from pSourceFName file 865fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * 875fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * return : it will return 0 if procedure is success 885fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi * or will return -1 if not. 895fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi */ 905fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choiextern int wfc_util_ffile_check_copy(char *pDestFName, char *pSourceFName, mode_t mode, uid_t uID, gid_t gID); 915fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi 925fd819dcca2ce41b0c7fa56d010dca6cbc3cc0d0Sungmin Choi#endif 93