1 /* 2 * Copyright (c) 2006-2018, RT-Thread Development Team 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 * 6 * Change Logs: 7 * Date Author Notes 8 * 2013-04-15 Bernard the first version 9 * 2013-05-05 Bernard remove CRC for ramfs persistence 10 */ 11 12 #ifndef __DFS_RAMFS_H__ 13 #define __DFS_RAMFS_H__ 14 15 #include <rtthread.h> 16 #include <rtservice.h> 17 18 #define RAMFS_NAME_MAX 32 19 #define RAMFS_MAGIC 0x0A0A0A0A 20 21 struct ramfs_dirent 22 { 23 rt_list_t list; 24 struct dfs_ramfs *fs; /* file system ref */ 25 26 char name[RAMFS_NAME_MAX]; /* dirent name */ 27 rt_uint8_t* data; 28 29 rt_size_t size; /* file size */ 30 }; 31 32 /** 33 * DFS ramfs object 34 */ 35 struct dfs_ramfs 36 { 37 rt_uint32_t magic; 38 39 struct rt_memheap memheap; 40 struct ramfs_dirent root; 41 }; 42 43 int dfs_ramfs_init(void); 44 struct dfs_ramfs* dfs_ramfs_create(rt_uint8_t* pool, rt_size_t size); 45 46 #endif 47 48