129 lines
4.9 KiB
C
129 lines
4.9 KiB
C
/**************************************************************************************
|
|
* Copyright (c) 2016-2017, ARM Limited or its affiliates. All rights reserved *
|
|
* *
|
|
* This file and the related binary are licensed under the following license: *
|
|
* *
|
|
* ARM Object Code and Header Files License, v1.0 Redistribution. *
|
|
* *
|
|
* Redistribution and use of object code, header files, and documentation, without *
|
|
* modification, are permitted provided that the following conditions are met: *
|
|
* *
|
|
* 1) Redistributions must reproduce the above copyright notice and the *
|
|
* following disclaimer in the documentation and/or other materials *
|
|
* provided with the distribution. *
|
|
* *
|
|
* 2) Unless to the extent explicitly permitted by law, no reverse *
|
|
* engineering, decompilation, or disassembly of is permitted. *
|
|
* *
|
|
* 3) Redistribution and use is permitted solely for the purpose of *
|
|
* developing or executing applications that are targeted for use *
|
|
* on an ARM-based product. *
|
|
* *
|
|
* DISCLAIMER. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND *
|
|
* CONTRIBUTORS "AS IS." ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT *
|
|
* NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, *
|
|
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE *
|
|
* COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, *
|
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED *
|
|
* TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
|
|
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
|
|
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
|
|
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
|
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
|
|
**************************************************************************************/
|
|
|
|
|
|
|
|
|
|
#ifndef _SSI_PAL_FILE_INT_H
|
|
#define _SSI_PAL_FILE_INT_H
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
#include "stdio.h"
|
|
|
|
/**
|
|
* @brief File Description:
|
|
* This file contains wrapper functions for file related operations.
|
|
*/
|
|
|
|
/**** ----- Files General Definitions ----- ****/
|
|
|
|
/* Definitions for file modes */
|
|
#define SASI_PAL_MAX_SIZE_MODE 4
|
|
#define SASI_PAL_NUM_OF_SUPPORT_MODES 12
|
|
|
|
typedef char SaSiPalFileModeStr_t[SASI_PAL_MAX_SIZE_MODE];
|
|
|
|
typedef SaSiPalFileModeStr_t SaSiPalFileModesTable_t[SASI_PAL_NUM_OF_SUPPORT_MODES];
|
|
|
|
extern const SaSiPalFileModeStr_t SaSiPalFileModeTable[];
|
|
/**** ------------------------------------- ****/
|
|
|
|
//#define _SaSiFile_t FILE
|
|
|
|
/*----------------------------
|
|
PUBLIC FUNCTIONS
|
|
-----------------------------------*/
|
|
/**
|
|
* @brief A wrapper for fopen functionality (to create a new file, the file is opened for read and
|
|
* write).
|
|
*
|
|
*/
|
|
#define _SaSi_PalFileCreate(aFileName) SaSi_PalFOpen(aFileName, SASI_PAL_WriteAndRead)
|
|
|
|
/**
|
|
* @brief A wrapper for fopen functionality. SaSiPalFileModeTable contains all possible modes
|
|
* for fopen
|
|
*
|
|
*/
|
|
#define _SaSi_PalFOpen(aFileName, aFileMode) ((SaSiFile_t)fopen(aFileName, SaSiPalFileModeTable[aFileMode]))
|
|
|
|
/**
|
|
* @brief A wrapper for fclose functionality.
|
|
*
|
|
*/
|
|
#define _SaSi_PalFClose(aFileHandle) fclose((FILE*)aFileHandle)
|
|
|
|
/**
|
|
* @brief A wrapper for fseek functionality
|
|
*
|
|
*/
|
|
#define _SaSi_PalFSeek(aFileHandle, aOffset, aSeekOrigin) fseek((FILE*)aFileHandle, aOffset, aSeekOrigin)
|
|
|
|
/**
|
|
* @brief A wrapper for ftell functionality
|
|
*
|
|
*/
|
|
#define _SaSi_PalFTell(aFileHandle) ftell((FILE*)aFileHandle)
|
|
|
|
/**
|
|
* @brief A wrapper for fread functionality
|
|
*
|
|
*/
|
|
#define _SaSi_PalFRead(aFileHandle, aBuffer, aSize) fread(aBuffer, 1, aSize, (FILE*)aFileHandle)
|
|
|
|
/**
|
|
* @brief A wrapper for fwrite functionality
|
|
*
|
|
*/
|
|
#define _SaSi_PalFWrite(aFileHandle, aBuffer, aSize) fwrite(aBuffer, 1, aSize, (FILE*)aFileHandle)
|
|
/**
|
|
* @brief A wrapper for fflush functionality
|
|
*
|
|
*/
|
|
#define _SaSi_PalFFlush(aFileHandle) fflush((FILE*)aFileHandle)
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|