📄 ffs_coat.c
字号:
/*
+-----------------------------------------------------------------------------
| Modul : ffs_coat
+-----------------------------------------------------------------------------
| Copyright 2002 Texas Instruments Berlin, AG
| All rights reserved.
|
| This file is confidential and a trade secret of Texas
| Instruments Berlin, AG
| The receipt of or possession of this file does not convey
| any rights to reproduce or disclose its contents or to
| manufacture, use, or sell anything it may describe, in
| whole, or in part, without the specific written consent of
| Texas Instruments Berlin, AG.
+-----------------------------------------------------------------------------
| Purpose : Encapsulate the FFS API.
+-----------------------------------------------------------------------------
*/
#ifndef __FFS_COAT_C__
#define __FFS_COAT_C__
/*==== INCLUDES ===================================================*/
#define SAP_ACI
#include "typedefs.h"
#include "pconst.cdg"
#include "prim.h"
#include "vsi.h"
#include <ffs.h>
#include <ffs_coat.h>
/*==== CONSTANTS ==================================================*/
/*==== TYPES ======================================================*/
/*==== CONSTANTS ==================================================*/
//#define FFS_STATE_CHECK
#define FFS_PAR_CHECK
#define FFS_ERR_CHECK
/*==== EXTERNALS ==================================================*/
/*==== VARIABLES ==================================================*/
/*==== MACROS =====================================================*/
#if defined(FFS_STATE_CHECK)
#define _STATE_CHECK(ffs_ret)\
{ffs_ret=_FFS_StateCheck (_FFS_FCT_NAME,hMMI,file,line);\
if (ffs_ret NEQ EFFS_OK)return ffs_ret;}
#else /* FFS_PAR_CHECK */
#define _STATE_CHECK(ffs_ret)
#endif /* FFS_PAR_CHECK */
#if defined(FFS_PAR_CHECK)
#define _PAR_CHECK_NULL(parname,parnumber,ret)\
if (!parname){\
_FFS_ParCheck ("NULL", _FFS_FCT_NAME, parnumber, hMMI,file, line);\
return ret;}
#define _PAR_CHECK_LESSZERO(parname,parnumber,ret)\
if (parname < 0){\
_FFS_ParCheck ("<0", _FFS_FCT_NAME, parnumber, hMMI,file, line);\
return ret;}
#else /* FFS_PAR_CHECK */
#define _PAR_CHECK_NULL(parname,parnumber,ret)
#define _PAR_CHECK_LESSZERO(parname,parnumber,ret)
#endif /* FFS_PAR_CHECK */
#if defined(FFS_ERR_CHECK)
#define _ERROR_CHECK(ffs_ret)\
if (ffs_ret < 0)_FFS_ErrorMsg(NULL, _FFS_FCT_NAME, ffs_ret, hMMI,file, line)
#else /* FFS_ERR_CHECK */
#define _ERROR_CHECK(ffs_ret)
#endif /* FFS_ERR_CHECK */
/*==== FUNCTIONS ==================================================*/
#if defined(FFS_COAT_ENABLED)
static void _FFS_ParCheck (const char * const errmsg, const char * const fct,
int parameter,
T_HANDLE hMMI, const char * const file, int line);
static void _FFS_ErrorMsg (const char * const errmsg, const char * const fct,
int ffs_ret,
T_HANDLE hMMI, const char * const file, int line);
/* FFS functions whose positive return value has a meaning */
T_FFS_FD _FFS_open(const char *name, T_FFS_OPEN_FLAGS option,
T_HANDLE hMMI, const char * const file, int line)
{
#define _FFS_FCT_NAME "ffs_open"
T_FFS_FD ffs_ret;
_STATE_CHECK (ffs_ret);
_PAR_CHECK_NULL (name, 1, EFFS_BADNAME);
ffs_ret = ffs_open (name, option);
_ERROR_CHECK (ffs_ret);
return ffs_ret;
#undef _FFS_FCT_NAME
}
T_FFS_SIZE _FFS_write(T_FFS_FD fdi, void *src, T_FFS_SIZE amount,
T_HANDLE hMMI, const char * const file, int line)
{
#define _FFS_FCT_NAME "ffs_write"
T_FFS_SIZE ffs_ret;
_STATE_CHECK (ffs_ret);
_PAR_CHECK_NULL (src, 2, EFFS_BADOP);
ffs_ret = ffs_write (fdi, src, amount);
_ERROR_CHECK (ffs_ret);
return ffs_ret;
#undef _FFS_FCT_NAME
}
T_FFS_SIZE _FFS_read(T_FFS_FD fdi, void *src, T_FFS_SIZE size,
T_HANDLE hMMI, const char * const file, int line)
{
#define _FFS_FCT_NAME "ffs_read"
T_FFS_SIZE ffs_ret;
_STATE_CHECK (ffs_ret);
_PAR_CHECK_NULL (src, 2, EFFS_BADOP);
ffs_ret = ffs_read (fdi, src, size);
_ERROR_CHECK (ffs_ret);
return ffs_ret;
#undef _FFS_FCT_NAME
}
T_FFS_SIZE _FFS_seek(T_FFS_FD fdi, T_FFS_SIZE offset, T_FFS_WHENCE whence,
T_HANDLE hMMI, const char * const file, int line)
{
#define _FFS_FCT_NAME "ffs_seek"
T_FFS_SIZE ffs_ret;
_STATE_CHECK (ffs_ret);
_PAR_CHECK_LESSZERO (offset, 2, EFFS_BADOP);
ffs_ret = ffs_seek (fdi, offset, whence);
_ERROR_CHECK (ffs_ret);
return ffs_ret;
#undef _FFS_FCT_NAME
}
T_FFS_SIZE _FFS_opendir(const char *name, T_FFS_DIR *dir,
T_HANDLE hMMI, const char * const file, int line)
{
#define _FFS_FCT_NAME "ffs_opendir"
T_FFS_SIZE ffs_ret;
_STATE_CHECK (ffs_ret);
_PAR_CHECK_NULL (name, 1, EFFS_NOTADIR);
_PAR_CHECK_NULL (dir, 2, EFFS_NOTADIR);
ffs_ret = ffs_opendir (name, dir);
_ERROR_CHECK (ffs_ret);
return ffs_ret;
#undef _FFS_FCT_NAME
}
T_FFS_SIZE _FFS_readdir (T_FFS_DIR *dir, char *name, T_FFS_SIZE size,
T_HANDLE hMMI, const char * const file, int line)
{
#define _FFS_FCT_NAME "ffs_readdir"
T_FFS_SIZE ffs_ret;
_STATE_CHECK (ffs_ret);
_PAR_CHECK_NULL (dir, 1, EFFS_NOTADIR);
_PAR_CHECK_NULL (name, 2, EFFS_NOTADIR);
_PAR_CHECK_LESSZERO (size, 3, EFFS_NOTADIR);
ffs_ret = ffs_readdir (dir, name, size);
_ERROR_CHECK (ffs_ret);
return ffs_ret;
#undef _FFS_FCT_NAME
}
T_FFS_SIZE _FFS_readlink(const char *name, char *addr, T_FFS_SIZE size,
T_HANDLE hMMI, const char * const file, int line)
{
#define _FFS_FCT_NAME "ffs_readlink"
T_FFS_SIZE ffs_ret;
_STATE_CHECK (ffs_ret);
_PAR_CHECK_NULL (name, 1, EFFS_NOTAFILE);
_PAR_CHECK_NULL (addr, 2, EFFS_NOTAFILE);
_PAR_CHECK_LESSZERO (size, 3, EFFS_FILETOOBIG);
ffs_ret = ffs_readlink (name, addr, size);
_ERROR_CHECK (ffs_ret);
return ffs_ret;
#undef _FFS_FCT_NAME
}
T_FFS_SIZE _FFS_file_read(const char *name, void *addr, T_FFS_SIZE size,
T_HANDLE hMMI, const char * const file, int line)
{
#define _FFS_FCT_NAME "ffs_file_read"
T_FFS_SIZE ffs_ret;
_STATE_CHECK (ffs_ret);
_PAR_CHECK_NULL (name, 1, EFFS_NOTAFILE);
_PAR_CHECK_NULL (addr, 2, EFFS_NOTAFILE);
_PAR_CHECK_LESSZERO (size, 3, EFFS_FILETOOBIG);
ffs_ret = ffs_file_read (name, addr, size);
_ERROR_CHECK (ffs_ret);
return ffs_ret;
#undef _FFS_FCT_NAME
}
T_FFS_SIZE _FFS_fread(const char *name, void *addr, T_FFS_SIZE size,
T_HANDLE hMMI, const char * const file, int line)
{
#define _FFS_FCT_NAME "ffs_fread"
T_FFS_SIZE ffs_ret;
_STATE_CHECK (ffs_ret);
_PAR_CHECK_NULL (name, 1, EFFS_NOTAFILE);
_PAR_CHECK_NULL (addr, 2, EFFS_NOTAFILE);
_PAR_CHECK_LESSZERO (size, 3, EFFS_FILETOOBIG);
/* ffs_fread is deprecated, use ffs_file_read instead */
ffs_ret = ffs_file_read (name, addr, size);
_ERROR_CHECK (ffs_ret);
return ffs_ret;
#undef _FFS_FCT_NAME
}
/* FFS functions which return a value EFFS_OK if OK */
T_FFS_RET _FFS_preformat(UINT16 magic,
T_HANDLE hMMI, const char * const file, int line)
{
#define _FFS_FCT_NAME "ffs_preformat"
T_FFS_SIZE ffs_ret;
ffs_ret = ffs_preformat (magic);
_ERROR_CHECK (ffs_ret);
return ffs_ret;
#undef _FFS_FCT_NAME
}
T_FFS_RET _FFS_format(const char *name, UINT16 magic,
T_HANDLE hMMI, const char * const file, int line)
{
#define _FFS_FCT_NAME "ffs_format"
T_FFS_SIZE ffs_ret;
_PAR_CHECK_NULL (name, 1, EFFS_BADNAME);
ffs_ret = ffs_format (name, magic);
_ERROR_CHECK (ffs_ret);
return ffs_ret;
#undef _FFS_FCT_NAME
}
T_FFS_RET _FFS_close(T_FFS_FD fdi,
T_HANDLE hMMI, const char * const file, int line)
{
#define _FFS_FCT_NAME "ffs_close"
T_FFS_SIZE ffs_ret;
_STATE_CHECK (ffs_ret);
ffs_ret = ffs_close (fdi);
_ERROR_CHECK (ffs_ret);
return ffs_ret;
#undef _FFS_FCT_NAME
}
T_FFS_RET _FFS_truncate(const char *path, T_FFS_OFFSET length,
T_HANDLE hMMI, const char * const file, int line)
{
#define _FFS_FCT_NAME "ffs_truncate"
T_FFS_SIZE ffs_ret;
_STATE_CHECK (ffs_ret);
_PAR_CHECK_NULL (path, 1, EFFS_NOTFOUND);
_PAR_CHECK_LESSZERO (length, 2, EFFS_NOTFOUND);
ffs_ret = ffs_truncate (path, length);
_ERROR_CHECK (ffs_ret);
return ffs_ret;
#undef _FFS_FCT_NAME
}
T_FFS_RET _FFS_ftruncate(T_FFS_FD fdi, T_FFS_OFFSET length,
T_HANDLE hMMI, const char * const file, int line)
{
#define _FFS_FCT_NAME "ffs_ftruncate"
T_FFS_SIZE ffs_ret;
_STATE_CHECK (ffs_ret);
_PAR_CHECK_NULL (fdi, 1, EFFS_BADFD);
_PAR_CHECK_LESSZERO (length, 2, EFFS_NOTFOUND);
ffs_ret = ffs_ftruncate (fdi, length);
_ERROR_CHECK (ffs_ret);
return ffs_ret;
#undef _FFS_FCT_NAME
}
T_FFS_RET _FFS_fdatasync(T_FFS_FD fdi,
T_HANDLE hMMI, const char * const file, int line)
{
#define _FFS_FCT_NAME "ffs_fdatasync"
T_FFS_SIZE ffs_ret;
_STATE_CHECK (ffs_ret);
_PAR_CHECK_NULL (fdi, 1, EFFS_BADFD);
ffs_ret = ffs_fdatasync (fdi);
_ERROR_CHECK (ffs_ret);
return ffs_ret;
#undef _FFS_FCT_NAME
}
T_FFS_RET _FFS_stat(const char *name, T_FFS_STAT *stat,
T_HANDLE hMMI, const char * const file, int line)
{
#define _FFS_FCT_NAME "ffs_stat"
T_FFS_SIZE ffs_ret;
_STATE_CHECK (ffs_ret);
_PAR_CHECK_NULL (name, 1, EFFS_NOTFOUND);
_PAR_CHECK_NULL (stat, 2, EFFS_NOTFOUND);
ffs_ret = ffs_stat (name, stat);
_ERROR_CHECK (ffs_ret);
return ffs_ret;
#undef _FFS_FCT_NAME
}
T_FFS_RET _FFS_fstat(T_FFS_FD fdi, T_FFS_STAT *stat,
T_HANDLE hMMI, const char * const file, int line)
{
#define _FFS_FCT_NAME "ffs_fstat"
T_FFS_SIZE ffs_ret;
_STATE_CHECK (ffs_ret);
_PAR_CHECK_NULL (fdi, 1, EFFS_BADFD);
_PAR_CHECK_NULL (stat, 2, EFFS_NOTFOUND);
ffs_ret = ffs_fstat (fdi, stat);
_ERROR_CHECK (ffs_ret);
return ffs_ret;
#undef _FFS_FCT_NAME
}
T_FFS_RET _FFS_lstat(const char *name, T_FFS_STAT *stat,
T_HANDLE hMMI, const char * const file, int line)
{
#define _FFS_FCT_NAME "ffs_lstat"
T_FFS_SIZE ffs_ret;
_STATE_CHECK (ffs_ret);
_PAR_CHECK_NULL (name, 1, EFFS_NOTFOUND);
_PAR_CHECK_NULL (stat, 2, EFFS_NOTFOUND);
ffs_ret = ffs_lstat (name, stat);
_ERROR_CHECK (ffs_ret);
return ffs_ret;
#undef _FFS_FCT_NAME
}
T_FFS_RET _FFS_xlstat(const char *name, T_FFS_XSTAT *stat,
T_HANDLE hMMI, const char * const file, int line)
{
#define _FFS_FCT_NAME "ffs_xlstat"
T_FFS_SIZE ffs_ret;
_STATE_CHECK (ffs_ret);
_PAR_CHECK_NULL (name, 1, EFFS_NOTFOUND);
_PAR_CHECK_NULL (stat, 2, EFFS_NOTFOUND);
ffs_ret = ffs_xlstat (name, stat);
_ERROR_CHECK (ffs_ret);
return ffs_ret;
#undef _FFS_FCT_NAME
}
T_FFS_RET _FFS_linkstat(const char *name, T_FFS_STAT *stat,
T_HANDLE hMMI, const char * const file, int line)
{
#define _FFS_FCT_NAME "ffs_linkstat"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -