#ifndef _SR_FAL_H
#define _SR_FAL_H


#include "fal_part.h"


typedef struct fal_part SR_FAL_PART_T;


/**
 * @brief 根据分区名查找分区
 *
 * @param[in] name 用户参数
 *
 * @return 成功：SR_FAL_PART_T *指针    失败：SR_NULL
 */
#define SR_FalPartFind(name)                   fal_part_find(name)

/**
 * @brief 分区内容读取
 *
 * @param[in] part   分区指针，SR_FAL_PART_T *类型
 * @param[in] offset 分区内偏移，uint32_t类型
 * @param[in] buf    数据读取缓存，uint8_t *类型
 * @param[in] size   数据读取大小，uint32_t类型
 * @return 成功：实际读取大小    失败：负值错误码
 */
#define SR_FalPartRead(part,offset,buf,size)   fal_part_read(part,offset,buf,size)

/**
 * @brief 分区内容写入
 *
 * @param[in] part   分区指针，SR_FAL_PART_T *类型
 * @param[in] offset 分区内偏移，uint32_t类型
 * @param[in] buf    待写入数据缓存，uint8_t *类型
 * @param[in] size   数据写入大小，uint32_t类型
 * @return 成功：实际写入大小    失败：负值错误码
 */
#define SR_FalPartWrite(part,offset,buf,size)  fal_part_write(part,offset,buf,size)


/**
 * @brief 分区内容擦除
 *
 * @param[in] part   分区指针，SR_FAL_PART_T *类型
 * @param[in] blkId  分区内的扇区/块的id号（从0开始）
 * @param[in] blkNum 要擦除的扇区/块的数量
 * @return 成功：0    失败：负值错误码
 */
#define SR_FalPartErase(part, blkId, blkNum)    fal_part_erase(part, blkId, blkNum)

/**
 * @brief 擦除整个分区
 *
 * @param[in] part   分区指针，SR_FAL_PART_T *类型
 * 
 * @return 成功：0    失败：负值错误码
 */
#define SR_FalPartEraseAll(part)                fal_part_erase_all(part)


/**
 * @brief  查看分区表
 * 
 * @return 无
 */
#define SR_FalShowPartTable()                  fal_show_part_table()


#endif

