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