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