RTEMS Filesystem Design Guide (6.17c582f).#
The authors have used their best efforts in preparing this material. These efforts include the development, research, and testing of the theories and programs to determine their effectiveness. No warranty of any kind, expressed or implied, with regard to the software or the material contained in this document is provided. No liability arising out of the application or use of any product described in this document is assumed. The authors reserve the right to revise this material and to make changes from time to time in the content hereof without obligation to notify anyone of such revision or changes.
The RTEMS Project is hosted at https://www.rtems.org. Any inquiries concerning RTEMS, its related support components, or its documentation should be directed to the RTEMS Project community.
- 1. Preface
- 2. Pathname Evaluation
- 3. System Initialization
- 4. Mounting and Unmounting Filesystems
- 5. System Call Development Notes
- 5.1. access
- 5.2. chdir
- 5.3. chmod
- 5.4. chown
- 5.5. close
- 5.6. closedir
- 5.7. dup() Unimplemented
- 5.8. dup2() Unimplemented
- 5.9. fchmod
- 5.10. fcntl()
- 5.11. fdatasync
- 5.12. fpathconf
- 5.13. fstat
- 5.14. ioctl
- 5.15. link
- 5.16. lseek
- 5.17. mkdir
- 5.18. mkfifo
- 5.19. mknod
- 5.20. mount
- 5.21. open
- 5.22. opendir
- 5.23. pathconf
- 5.24. read
- 5.25. readdir
- 5.26. unmount
- 5.27. eval
- 5.28. getdentsc
- 6. Filesystem Implementation Requirements
- 6.1. General
- 6.2. File and Directory Removal Constraints
- 6.3. API Layering
- 6.4. Operation Tables
- 6.4.1. Filesystem Handler Table Functions
- 6.4.1.1. evalpath Handler
- 6.4.1.2. evalformake Handler
- 6.4.1.3. link Handler
- 6.4.1.4. unlink Handler
- 6.4.1.5. node_type Handler
- 6.4.1.6. mknod Handler
- 6.4.1.7. rmnod Handler
- 6.4.1.8. chown Handler
- 6.4.1.9. freenod Handler
- 6.4.1.10. mount Handler
- 6.4.1.11. fsmount_me Handler
- 6.4.1.12. unmount Handler
- 6.4.1.13. fsunmount_me Handler
- 6.4.1.14. utime Handler
- 6.4.1.15. eval_link Handler
- 6.4.1.16. symlink Handler
- 6.4.2. File Handler Table Functions
- 6.4.2.1. open Handler
- 6.4.2.1.1. close Handler
- 6.4.2.1.2. read Handler
- 6.4.2.1.3. write Handler
- 6.4.2.1.4. ioctl Handler
- 6.4.2.1.5. lseek Handler
- 6.4.2.1.6. fstat Handler
- 6.4.2.1.7. fchmod Handler
- 6.4.2.1.8. ftruncate Handler
- 6.4.2.1.9. fpathconf Handler
- 6.4.2.1.10. fsync Handler
- 6.4.2.1.11. fdatasync Handler
- 6.4.2.1.12. fcntl Handler
- 6.4.2.1. open Handler
- 6.4.1. Filesystem Handler Table Functions
- 7. In-Memory Filesystem
- 7.1. IMFS Per Node Data Structure
- 7.2. Miscellaneous IMFS Information
- 7.3. Memory associated with the IMFS
- 7.4. IMFS Operation Tables
- 7.4.1. IMFS Filesystem Handler Table Functions
- 7.4.1.1. IMFS_evalpath()
- 7.4.1.2. IMFS_evalformake()
- 7.4.1.3. IMFS_link()
- 7.4.1.4. IMFS_unlink()
- 7.4.1.5. IMFS_node_type()
- 7.4.1.6. IMFS_mknod()
- 7.4.1.7. IMFS_rmnod()
- 7.4.1.8. IMFS_chown()
- 7.4.1.9. IMFS_freenod()
- 7.4.1.10. IMFS_freenodinfo()
- 7.4.1.11. IMFS_mount()
- 7.4.1.12. IMFS_fsmount_me()
- 7.4.1.13. IMFS_unmount()
- 7.4.1.14. IMFS_fsunmount()
- 7.4.1.15. IMFS_utime()
- 7.4.1.16. IMFS_eval_link()
- 7.4.2. Regular File Handler Table Functions
- 7.4.2.1. memfile_open() for Regular Files
- 7.4.2.2. memfile_close() for Regular Files
- 7.4.2.3. memfile_read() for Regular Files
- 7.4.2.4. memfile_write() for Regular Files
- 7.4.2.5. memfile_ioctl() for Regular Files
- 7.4.2.6. memfile_lseek() for Regular Files
- 7.4.2.7. IMFS_stat() for Regular Files
- 7.4.2.8. IMFS_fchmod() for Regular Files
- 7.4.2.9. memfile_ftruncate() for Regular Files
- 7.4.2.10. No pathconf() for Regular Files
- 7.4.2.11. No fsync() for Regular Files
- 7.4.2.12. IMFS_fdatasync() for Regular Files
- 7.4.3. Directory Handler Table Functions
- 7.4.3.1. IMFS_dir_open() for Directories
- 7.4.3.2. IMFS_dir_close() for Directories
- 7.4.3.3. IMFS_dir_read() for Directories
- 7.4.3.4. No write() for Directories
- 7.4.3.5. No ioctl() for Directories
- 7.4.3.6. IMFS_dir_lseek() for Directories
- 7.4.3.7. IMFS_dir_fstat() for Directories
- 7.4.3.8. IMFS_fchmod() for Directories
- 7.4.3.9. No ftruncate() for Directories
- 7.4.3.10. No fpathconf() for Directories
- 7.4.3.11. No fsync() for Directories
- 7.4.3.12. IMFS_fdatasync() for Directories
- 7.4.4. Device Handler Table Functions
- 7.4.4.1. device_open() for Devices
- 7.4.4.2. device_close() for Devices
- 7.4.4.3. device_read() for Devices
- 7.4.4.4. device_write() for Devices
- 7.4.4.5. device_ioctl() for Devices
- 7.4.4.6. device_lseek() for Devices
- 7.4.4.7. IMFS_stat() for Devices
- 7.4.4.8. IMFS_fchmod() for Devices
- 7.4.4.9. No ftruncate() for Devices
- 7.4.4.10. No fpathconf() for Devices
- 7.4.4.11. No fsync() for Devices
- 7.4.4.12. No fdatasync() for Devices
- 7.4.1. IMFS Filesystem Handler Table Functions
- 8. Miniature In-Memory Filesystem
- 9. Trivial FTP Client Filesystem
- 10. Command and Variable Index