| xf.li | 6c8fc1e | 2023-08-12 00:11:09 -0700 | [diff] [blame] | 1 | /******************************************************************************* | 
 | 2 |  * 版权所有 (C)2022, 中兴通讯股份有限公司。 | 
 | 3 |  * | 
 | 4 |  * 文件名称:     pub_flags.h | 
 | 5 |  * 文件标识:     pub_flags | 
 | 6 |  * 内容摘要:     zx298501芯片平台flags分区规划头文件 | 
 | 7 |  * 使用方法: | 
 | 8 |  * | 
 | 9 |  * 修改日期        版本号      修改标记        修改人          修改内容 | 
 | 10 |  * ------------------------------------------------------------------------------ | 
 | 11 |  * 2022/09/15      V1.0        Create          周国坡          创建 | 
 | 12 |  * | 
 | 13 |  *******************************************************************************/ | 
 | 14 |  | 
 | 15 | #ifndef _MTD_API_H | 
 | 16 | #define _MTD_API_H | 
 | 17 |  | 
 | 18 | typedef enum | 
 | 19 | { | 
 | 20 |     DEVICE_MTD = 0, | 
 | 21 |     DEVICE_ZFTL = 1, | 
 | 22 |     DEVICE_MTD_BLOCK, | 
 | 23 | } device_type_t; | 
 | 24 |  | 
 | 25 | /** | 
 | 26 |  * @brief 根据分区名查找分区设备文件路径 | 
 | 27 |  * @param partition_name      入参,分区名 | 
 | 28 |  * @param type                入参,设备类型 | 
 | 29 |  * @param out_mtd_path        出参,设备文件路径缓冲区 | 
 | 30 |  * @param out_mtd_path_len    入参,out_mtd_path数据缓冲区长度 | 
 | 31 |  * @return 成功返回0,失败返回-1 | 
 | 32 |  * @retval | 
 | 33 |  * @note | 
 | 34 |  * @warning | 
 | 35 |  */ | 
 | 36 | extern int mtd_find(const char *i_parti_name, device_type_t type, char *out_mtd_path, unsigned int out_mtd_path_len); | 
 | 37 |  | 
 | 38 | /** | 
 | 39 |  * @brief 根据分区名获取mtd分区信息 | 
 | 40 |  * @param fd                  入参,mtd分区文件fd | 
 | 41 |  * @param info                出参,包括分区大小和擦除块大小 | 
 | 42 |  * @return 成功返回0,失败返回-1 | 
 | 43 |  * @retval | 
 | 44 |  * @note fd为打开/dev/mtdN设备句柄 | 
 | 45 |  * @warning | 
 | 46 |  */ | 
 | 47 | extern int mtd_get_info(int fd, struct mtd_info_user *info); | 
 | 48 |  | 
 | 49 | /** | 
 | 50 |  * @brief 判断block是否是坏块 | 
 | 51 |  * @param fd                  入参,mtd分区文件fd | 
 | 52 |  * @param offset              入参,mtd分区偏移位置,包含坏块 | 
 | 53 |  * @return 0表示非坏块,1表示坏块,-1表示失败 | 
 | 54 |  * @retval | 
 | 55 |  * @note fd为打开/dev/mtdN设备句柄 | 
 | 56 |  * @warning | 
 | 57 |  */ | 
 | 58 | extern int mtd_block_isbad(int fd, off_t offset); | 
 | 59 |  | 
 | 60 | /** | 
 | 61 |  * @brief 擦除指定分区 | 
 | 62 |  * @param partition_name      入参,分区名 | 
 | 63 |   * @return 成功返回0,失败返回-1 | 
 | 64 |  * @retval | 
 | 65 |  * @note | 
 | 66 |  * @warning | 
 | 67 |  */ | 
 | 68 | extern int mtd_erase_partition(const char *partition_name); | 
 | 69 |  | 
 | 70 | /** | 
 | 71 |  * @brief 将指定镜像文件写到指定分区 | 
 | 72 |  * @param partition_name      入参,分区名 | 
 | 73 |  * @param image_file          入参,指定的镜像文件 | 
 | 74 |  * @return 成功返回0,失败返回-1 | 
 | 75 |  * @retval | 
 | 76 |  * @note | 
 | 77 |  * @warning 先要mtd_erase_partition函数擦除分区 | 
 | 78 |  */ | 
 | 79 | extern int mtd_write_partition(const char *partition_name, const char *image_file); | 
 | 80 |  | 
 | 81 | /** | 
 | 82 |  * @brief 擦除mtd分区指定位置数据 | 
 | 83 |  * @param fd                  入参,mtd分区文件fd | 
 | 84 |  * @param offset              入参,mtd分区偏移位置,包含坏块 | 
 | 85 |   * @return 成功返回0,失败返回-1 | 
 | 86 |  * @retval | 
 | 87 |  * @note fd为打开/dev/mtdN设备句柄 | 
 | 88 |  * @warning  | 
 | 89 |  */ | 
 | 90 | extern int mtd_erase_offset(int fd, off_t offset); | 
 | 91 |  | 
 | 92 | /** | 
 | 93 |  * @brief 将数据写到mtd分区指定偏移位置 | 
 | 94 |  * @param fd                  入参,mtd分区文件fd | 
 | 95 |  * @param offset              入参,mtd分区偏移位置 | 
 | 96 |  * @param buf                 入参,数据缓冲区 | 
 | 97 |  * @param count               入参,buf数据长度,不超过一个擦除块 | 
 | 98 |  * @return 成功返回写入数据长度,失败返回-1 | 
 | 99 |  * @retval | 
 | 100 |  * @note fd为打开/dev/mtdN设备句柄 | 
 | 101 |  * @warning 先要mtd_erase_partition函数擦除分区 | 
 | 102 |  */ | 
 | 103 | extern ssize_t mtd_write_offset(int fd, off_t offset, const void *buf, size_t count); | 
 | 104 |  | 
 | 105 | /** | 
 | 106 |  * @brief 读取mtd分区指定偏移位置的数据 | 
 | 107 |  * @param fd                  入参,mtd分区文件fd | 
 | 108 |  * @param offset              入参,mtd分区偏移位置 | 
 | 109 |  * @param buf                 出参,数据缓冲区 | 
 | 110 |  * @param count               入参,buf数据长度,不超过一个擦除块 | 
 | 111 |  * @return 成功返回读取数据长度,失败返回-1 | 
 | 112 |  * @retval | 
 | 113 |  * @note fd为打开/dev/mtdN设备句柄 | 
 | 114 |  * @warning | 
 | 115 |  */ | 
 | 116 | extern ssize_t mtd_read_offset(int fd, off_t offset, void *buf, size_t count); | 
 | 117 |  | 
 | 118 | #endif  /* _MTD_API_H */ |