48 lines
		
	
	
		
			895 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			895 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2006-2018, RT-Thread Development Team
 | |
|  *
 | |
|  * SPDX-License-Identifier: Apache-2.0
 | |
|  *
 | |
|  * Change Logs:
 | |
|  * Date           Author       Notes
 | |
|  * 2013-04-15     Bernard      the first version
 | |
|  * 2013-05-05     Bernard      remove CRC for ramfs persistence
 | |
|  */
 | |
| 
 | |
| #ifndef __DFS_RAMFS_H__
 | |
| #define __DFS_RAMFS_H__
 | |
| 
 | |
| #include <rtthread.h>
 | |
| #include <rtservice.h>
 | |
| 
 | |
| #define RAMFS_NAME_MAX  32
 | |
| #define RAMFS_MAGIC     0x0A0A0A0A
 | |
| 
 | |
| struct ramfs_dirent
 | |
| {
 | |
|     rt_list_t list;
 | |
|     struct dfs_ramfs *fs;       /* file system ref */
 | |
| 
 | |
|     char name[RAMFS_NAME_MAX];  /* dirent name */
 | |
|     rt_uint8_t* data;
 | |
| 
 | |
|     rt_size_t size;             /* file size */
 | |
| };
 | |
| 
 | |
| /**
 | |
|  * DFS ramfs object
 | |
|  */
 | |
| struct dfs_ramfs
 | |
| {
 | |
|     rt_uint32_t magic;
 | |
| 
 | |
|     struct rt_memheap memheap;
 | |
|     struct ramfs_dirent root;
 | |
| };
 | |
| 
 | |
| int dfs_ramfs_init(void);
 | |
| struct dfs_ramfs* dfs_ramfs_create(rt_uint8_t* pool, rt_size_t size);
 | |
| 
 | |
| #endif
 | |
| 
 |