| /* |
| * Copyright (C) 2011 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| /** |
| ************************************************************************ |
| * @file M4OSA_FileCommon_priv.h |
| * @ingroup OSAL |
| * @brief File common private for Android |
| * @note This file declares functions and types used by both the file |
| * writer and file reader. |
| ************************************************************************ |
| */ |
| |
| #ifndef M4OSA_FILECOMMON_PRIV_H |
| #define M4OSA_FILECOMMON_PRIV_H |
| |
| |
| #include "M4OSA_FileCommon.h" |
| #include <stdio.h> |
| |
| #define M4OSA_isAccessModeActived(compound_mode_access,elementary_mode_access)\ |
| (((compound_mode_access)&(elementary_mode_access))? 1:0) |
| |
| |
| typedef enum M4OSA_LastSeek |
| { |
| SeekNone, |
| SeekRead, |
| SeekWrite |
| } M4OSA_LastSeek; |
| |
| /** This structure defines the file context*/ |
| typedef struct { |
| M4OSA_UInt32 coreID_read; |
| M4OSA_UInt32 coreID_write; |
| FILE* file_desc; |
| /** The name of the URL */ |
| M4OSA_Char* url_name; |
| /** The name of the file */ |
| M4OSA_Char* file_name; |
| /** The size in bytes of the file */ |
| M4OSA_FilePosition file_size; |
| /** The file mode access used to open the file */ |
| M4OSA_FileModeAccess access_mode; |
| M4OSA_LastSeek current_seek; |
| M4OSA_FilePosition read_position; |
| M4OSA_FilePosition write_position; |
| M4OSA_Bool b_is_end_of_file; |
| |
| #ifdef M4OSA_FILE_BLOCK_WITH_SEMAPHORE |
| M4OSA_Context semaphore_context; |
| #endif /* M4OSA_FILE_BLOCK_WITH_SEMAPHORE */ |
| |
| |
| /* These two variables were added to manage case where a file |
| * is opened in read and write mode with one descriptor */ |
| M4OSA_DescrModeAccess m_DescrModeAccess; |
| M4OSA_UInt32 m_uiLockMode; |
| |
| |
| } M4OSA_FileContext; |
| |
| |
| |
| M4OSA_ERR M4OSA_fileCommonOpen(M4OSA_UInt16 core_id, |
| M4OSA_Context* context, |
| M4OSA_Char* URL, |
| M4OSA_FileModeAccess fileModeAccess); |
| |
| M4OSA_ERR M4OSA_fileCommonClose(M4OSA_UInt16 core_id, |
| M4OSA_Context context); |
| |
| M4OSA_ERR M4OSA_fileCommonGetAttribute(M4OSA_Context context, |
| M4OSA_FileAttribute* attribute); |
| |
| M4OSA_ERR M4OSA_fileCommonGetURL(M4OSA_Context context, |
| M4OSA_Char** url); |
| |
| M4OSA_ERR M4OSA_fileCommonGetFilename(M4OSA_Char* url, |
| M4OSA_Char** filename); |
| |
| M4OSA_ERR M4OSA_fileCommonSeek(M4OSA_Context context, |
| M4OSA_FileSeekAccessMode seekMode, |
| M4OSA_FilePosition* position); |
| |
| #ifdef UTF_CONVERSION |
| M4OSA_ERR M4OSA_ToUTF8_OSAL (M4OSA_Void *pBufferIn, |
| M4OSA_UInt8 *pBufferOut, |
| M4OSA_UInt32 *bufferOutSize); |
| #endif /*UTF_CONVERSION*/ |
| |
| |
| #endif /*M4OSA_FILECOMMON_PRIV_H*/ |
| |