dfs_ramfs.h 895 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /*
  2. * Copyright (c) 2006-2021, 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. #ifndef __DFS_RAMFS_H__
  12. #define __DFS_RAMFS_H__
  13. #include <rtthread.h>
  14. #include <rtservice.h>
  15. #define RAMFS_NAME_MAX 32
  16. #define RAMFS_MAGIC 0x0A0A0A0A
  17. struct ramfs_dirent
  18. {
  19. rt_list_t list;
  20. struct dfs_ramfs *fs; /* file system ref */
  21. char name[RAMFS_NAME_MAX]; /* dirent name */
  22. rt_uint8_t *data;
  23. rt_size_t size; /* file size */
  24. };
  25. /**
  26. * DFS ramfs object
  27. */
  28. struct dfs_ramfs
  29. {
  30. rt_uint32_t magic;
  31. struct rt_memheap memheap;
  32. struct ramfs_dirent root;
  33. };
  34. int dfs_ramfs_init(void);
  35. struct dfs_ramfs *dfs_ramfs_create(rt_uint8_t *pool, rt_size_t size);
  36. #endif