4G_module/include/cmiot/cm_fs.h

214 lines
5.5 KiB
C
Raw Normal View History

2024-09-02 17:54:29 +08:00
/**
* @file cm_fs.h
* @brief API接口
* @copyright Copyright © 2021 China Mobile IOT. All rights reserved.
* @author By WangPeng
* @date 2021/4/7
*
* @defgroup fs
* @ingroup fs
* @{
*/
#ifndef __CM_FS_H__
#define __CM_FS_H__
/****************************************************************************
* Included Files
****************************************************************************/
#include <stdint.h>
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* 模组使用LittleFS文件系统请按照下文描述的文件打开方式使用。错误使用时文件系统无法保证文件功能正常 */
#define CM_FS_RB (0) /*!< rb打开一个二进制文件文件必须存在只允许读 */
#define CM_FS_WB (1) /*!< wb新建一个二进制文件已存在的文件内容清空只允许写 */
#define CM_FS_AB (2) /*!< ab打开或新建一个二进制文件只允许在文件末尾追写 */
#define CM_FS_WBPLUS (3) /*!< wb+,新建一个二进制文件,已存在的文件内容清空,允许读写 */
#define CM_FS_ABPLUS (4) /*!< ab+,打开或新建一个二进制文件,可读,只允许在文件末尾追写 */
#define CM_FS_RBPLUS (5) /*!< rb+,打开一个二进制文件,文件必须存在,允许读写 */
#define CM_FS_SEEK_SET (0) /*!< SEEK_SET文件开头 */
#define CM_FS_SEEK_CUR (1) /*!< SEEK_CUR当前位置 */
#define CM_FS_SEEK_END (2) /*!< SEEK_END文件结尾 */
/****************************************************************************
* Public Types
****************************************************************************/
typedef struct
{
uint32_t free_size; /*!< 当前可用文件系统大小 */
uint32_t total_size; /*!< 文件系统总大小 */
} cm_fs_system_info_t;
/****************************************************************************
* Public Data
****************************************************************************/
/****************************************************************************
* Public Function Prototypes
****************************************************************************/
#ifdef __cplusplus
#define EXTERN extern "C"
extern "C" {
#else
#define EXTERN extern
#endif
/****************************************************************************/
/**
* @brief
*
* @param [in] filename
* @param [in] flag
*
* @return
* >= 0 - \n
* < 0 -
*
* @details /filename入参中传入路径信息
*/
int32_t cm_fs_open(const char *filename, int32_t flag);
/**
* @brief
*
* @param [in] fd
*
* @return
* = 0 - \n
* < 0 -
*/
int32_t cm_fs_close(int32_t fd);
/**
* @brief
*
* @param [in] fd
* @param [out] buf
* @param [in] size
*
* @return
* >= 0 - \n
* < 0 -
*/
int32_t cm_fs_read(int32_t fd, void *buf, uint32_t size);
/**
* @brief
*
* @param [in] fd
* @param [in] buf
* @param [in] size
*
* @return
* >= 0 - \n
* < 0 -
*/
int32_t cm_fs_write(int32_t fd, const void *buf, uint32_t size);
#if 0
/**
* @brief
*
* @param [in] fd
*
* @return
* = 0 - \n
* < 0 -
*
* @details
*/
int32_t cm_fs_sync(int32_t fd);
#endif
/**
* @brief
*
* @param [in] fd
* @param [in] offset
* @param [in] base CM_FS_SEEK_SET CM_FS_SEEK_CUR CM_FS_SEEK_END
*
* @return
* = 0 - \n
* < 0 -
*
* @details offset不支持为负数
*/
int32_t cm_fs_seek(int32_t fd, int32_t offset, int32_t base);
/**
* @brief
*
* @param [in] file_name
*
* @return
* >= 0 - \n
* < 0 -
*/
int32_t cm_fs_delete(const char *file_name);
/**
* @brief
*
* @param [in] src
* @param [in] dest
*
* @return
* = 0 - \n
* < 0 -
*/
int32_t cm_fs_move(const char *src, const char *dest);
/**
* @brief
*
* @param [in] file_name
*
* @return
* = 1 - \n
* = 0 -
*
* @details /path入参中传入路径信息
*/
int32_t cm_fs_exist(const char *file_name);
/**
* @brief
*
* @param [in] file_name
* @return
*
* >= 0 - \n
* < 0 -
*
* @details More details
*/
int32_t cm_fs_filesize(const char *file_name);
/**
* @brief
*
* @param [out] info
*
* @return
* = 0 - \n
* < 0 -
*/
int32_t cm_fs_getinfo(cm_fs_system_info_t *info);
#undef EXTERN
#ifdef __cplusplus
}
#endif
#endif /* __CM_FS_H__ */
/** @}*/