1 /*
2  * Copyright ( C) 2015-2020 Alibaba Group Holding Limited
3  */
4 
5 #ifndef _IO_FLASH_H_
6 #define _IO_FLASH_H_
7 
8 #ifdef __cplusplus
9 extern "C" {
10 #endif
11 
12 /** @defgroup flash_device_api flash
13  *  @ingroup driver_api
14  * @{
15  */
16 
17 /* Flash设备IOCTL命令 */
18 #define IOC_FLASH_BASE 'F'
19 #define IOC_FLASH_ERASE_FLASH      (IOC_FLASH_BASE + 0x1)  /**< 擦除Flash */
20 #define IOC_FLASH_INFO_GET         (IOC_FLASH_BASE + 0x2)  /**< 获取Flash信息 */
21 #define IOC_FLASH_ENABLE_SECURE    (IOC_FLASH_BASE + 0x4)  /**< 使能Flash的安全区域 */
22 #define IOC_FLASH_DISABLE_SECURE   (IOC_FLASH_BASE + 0x8)  /**< 关闭Flash的安全区域 */
23 
24 #define IOC_BOOT_BASE 'O'
25 /* OTA function ioctl ID */
26 #define IOC_FLASH_SET_BOOT_INFO     (IOC_FLASH_BASE + IOC_BOOT_BASE + 0x0)  /**< 设置Boot信息 */
27 #define IOC_FLASH_CLEAR_BOOT_COUNT  (IOC_FLASH_BASE + IOC_BOOT_BASE + 0x1)  /**< 清理Boot信息 */
28 #define IOC_FLASH_GET_BOOT_TYPE     (IOC_FLASH_BASE + IOC_BOOT_BASE + 0x2)  /**< 获取Boot类型 */
29 
30 /**
31  * 注册Flash设备驱动到VFS框架
32  *
33  * @return  0:成功,否则失败
34  */
35 int vfs_flash_drv_init (void);
36 
37 /**
38  * @}
39  */
40 #ifdef __cplusplus
41 }
42 #endif
43 
44 #endif /*_IO_FLASH_H_*/
45