1855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi/* 2855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * Copyright (C) 2011 The Android Open Source Project 3855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * 4855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * Licensed under the Apache License, Version 2.0 (the "License"); 5855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * you may not use this file except in compliance with the License. 6855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * You may obtain a copy of the License at 7855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * 8855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * http://www.apache.org/licenses/LICENSE-2.0 9855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * 10855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * Unless required by applicable law or agreed to in writing, software 11855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * distributed under the License is distributed on an "AS IS" BASIS, 12855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * See the License for the specific language governing permissions and 14855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * limitations under the License. 15855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi */ 16855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi 17855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi/** 18855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi ****************************************************************************** 19855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * @file M4OSA_FileReader_optim.h 20855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * @brief File reader for Symbian 21855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi * @note This file declares functions and types to read a file. 22855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi ****************************************************************************** 23855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi*/ 24855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi 25855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi 26855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi 27855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#ifndef M4OSA_FILEREADER_OPTIM_H 28855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#define M4OSA_FILEREADER_OPTIM_H 29855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi 30855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#define M4OSA_READER_OPTIM_USE_OSAL_IF 31855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi 32855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi/**/ 33855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#ifndef M4OSA_READER_OPTIM_USE_OSAL_IF 34855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi typedef struct 35855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi { 36855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_Void* (*pFctPtr_Open)( M4OSA_Void* fd, 37855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_UInt32 FileModeAccess, 38855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_UInt16* errno ); 39855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_FilePosition (*pFctPtr_Read)( M4OSA_Void* fd, 40855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_UInt8* data, 41855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_FilePosition size, 42855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_UInt16* errno ); 43855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_FilePosition (*pFctPtr_Seek)( M4OSA_Void* fd, 44855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_FilePosition pos, 45855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_FileSeekAccessMode mode, 46855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_UInt16* errno ); 47855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_FilePosition (*pFctPtr_Tell)( M4OSA_Void* fd, 48855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_UInt16* errno ); 49855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_Int32 (*pFctPtr_Close)( M4OSA_Void* fd, 50855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_UInt16* errno ); 51855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_Void (*pFctPtr_AccessType)( M4OSA_UInt32 FileModeAccess_In, 52855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_Void* FileModeAccess_Out ); 53855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi 54855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi } M4OSA_FileSystem_FctPtr; 55855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#endif 56855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi/**/ 57855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi 58855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi 59855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi/* Reader API : bufferized functions */ 60855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#ifdef M4OSA_READER_OPTIM_USE_OSAL_IF 61855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_ERR M4OSA_fileReadOpen_optim( M4OSA_Context* context, 62855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_Void* fileDescriptor, 63855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_UInt32 fileModeAccess); 64855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#else 65855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_ERR M4OSA_fileReadOpen_optim( M4OSA_Context* context, 66855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_Void* fileDescriptor, 67855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_UInt32 fileModeAccess, 68855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_FileSystem_FctPtr *FS); 69855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#endif 70855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi 71855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray KundargiM4OSA_ERR M4OSA_fileReadData_optim( M4OSA_Context context, 72855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_MemAddr8 buffer, 73855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_UInt32* size ); 74855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray KundargiM4OSA_ERR M4OSA_fileReadSeek_optim( M4OSA_Context context, 75855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_FileSeekAccessMode seekMode, 76855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_FilePosition* position ); 77855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray KundargiM4OSA_ERR M4OSA_fileReadClose_optim( M4OSA_Context context ); 78855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray KundargiM4OSA_ERR M4OSA_fileReadGetOption_optim( M4OSA_Context context, 79855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_FileReadOptionID optionID, 80855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_DataOption *optionValue ); 81855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray KundargiM4OSA_ERR M4OSA_fileReadSetOption_optim( M4OSA_Context context, 82855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_FileReadOptionID optionID, 83855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi M4OSA_DataOption optionValue ); 84855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi 85855ec7c4be7ad642721909d5837a8d25a117c22fDharmaray Kundargi#endif /* M4OSA_FILEREADER_OPTIM_H */ 86