41#if !defined (_RTEMS_RFS_INODE_H_)
42#define _RTEMS_RFS_INODE_H_
52#define RTEMS_RFS_S_ISUID S_ISUID
53#define RTEMS_RFS_S_ISGID S_ISGID
54#define RTEMS_RFS_S_ISVTX S_ISVTX
55#define RTEMS_RFS_S_IREAD S_IREAD
56#define RTEMS_RFS_S_IWRITE S_IWRITE
57#define RTEMS_RFS_S_IEXEC S_IEXEC
58#define RTEMS_RFS_S_ENFMT S_ENFMT
59#define RTEMS_RFS_S_IFMT S_IFMT
60#define RTEMS_RFS_S_IFDIR S_IFDIR
61#define RTEMS_RFS_S_IFCHR S_IFCHR
62#define RTEMS_RFS_S_IFBLK S_IFBLK
63#define RTEMS_RFS_S_IFREG S_IFREG
64#define RTEMS_RFS_S_IFLNK S_IFLNK
65#define RTEMS_RFS_S_IFSOCK S_IFSOCK
66#define RTEMS_RFS_S_IFIFO S_IFIFO
67#define RTEMS_RFS_S_IRWXU S_IRWXU
68#define RTEMS_RFS_S_IRUSR S_IRUSR
69#define RTEMS_RFS_S_IWUSR S_IWUSR
70#define RTEMS_RFS_S_IXUSR S_IXUSR
71#define RTEMS_RFS_S_IRWXG S_IRWXG
72#define RTEMS_RFS_S_IRGRP S_IRGRP
73#define RTEMS_RFS_S_IWGRP S_IWGRP
74#define RTEMS_RFS_S_IXGRP S_IXGRP
75#define RTEMS_RFS_S_IRWXO S_IRWXO
76#define RTEMS_RFS_S_IROTH S_IROTH
77#define RTEMS_RFS_S_IWOTH S_IWOTH
78#define RTEMS_RFS_S_IXOTH S_IXOTH
80#define RTEMS_RFS_S_ISBLK(m) S_ISBLK(m)
81#define RTEMS_RFS_S_ISCHR(m) S_ISCHR(m)
82#define RTEMS_RFS_S_ISDIR(m) S_ISDIR(m)
83#define RTEMS_RFS_S_ISFIFO(m) S_ISFIFO(m)
84#define RTEMS_RFS_S_ISREG(m) S_ISREG(m)
85#define RTEMS_RFS_S_ISLNK(m) S_ISLNK(m)
86#define RTEMS_RFS_S_ISSOCK(m) S_ISSOCK(m)
91#define RTEMS_RFS_S_SYMLINK \
92 RTEMS_RFS_S_IFLNK | RTEMS_RFS_S_IRWXU | RTEMS_RFS_S_IRWXG | RTEMS_RFS_S_IRWXO
113#define RTEMS_RFS_INODE_DATA_NAME_SIZE \
114 (RTEMS_RFS_INODE_BLOCKS * sizeof (rtems_rfs_inode_block))
195#define RTEMS_RFS_INODE_SIZE (sizeof (rtems_rfs_inode))
242#define rtems_rfs_inode_is_loaded(_h) ((_h)->node)
247#define rtems_rfs_inode_ino(_h) ((_h)->ino)
256static inline uint16_t
286static inline uint16_t
312static inline uint16_t
338static inline uint16_t
351static inline uint16_t
366 uint16_t uid, uint16_t gid)
379static inline uint16_t
393 uint16_t block_offset)
406static inline uint32_t
514static inline uint32_t
541static inline uint32_t
568static inline uint32_t
int32_t rtems_rfs_bitmap_bit
Definition: rtems-rfs-bitmaps.h:103
uint32_t rtems_rfs_buffer_block
Definition: rtems-rfs-buffer.h:81
#define rtems_rfs_buffer_mark_dirty(_h)
Definition: rtems-rfs-buffer.h:163
#define rtems_rfs_write_u32(_d, _v)
Definition: rtems-rfs-data.h:100
#define rtems_rfs_read_u16(_d)
Definition: rtems-rfs-data.h:69
#define rtems_rfs_write_u16(_d, _v)
Definition: rtems-rfs-data.h:91
#define rtems_rfs_read_u32(_d)
Definition: rtems-rfs-data.h:76
#define RTEMS_RFS_INODE_BLOCKS
Definition: rtems-rfs-file-system.h:86
uint64_t rtems_rfs_pos
Definition: rtems-rfs-file-system.h:109
struct _rtems_rfs_inode_handle rtems_rfs_inode_handle
int rtems_rfs_inode_alloc(rtems_rfs_file_system *fs, rtems_rfs_bitmap_bit goal, rtems_rfs_ino *ino)
Definition: rtems-rfs-inode.c:51
int rtems_rfs_inode_open(rtems_rfs_file_system *fs, rtems_rfs_ino ino, rtems_rfs_inode_handle *handle, bool load)
Definition: rtems-rfs-inode.c:72
int rtems_rfs_inode_delete(rtems_rfs_file_system *fs, rtems_rfs_inode_handle *handle)
Definition: rtems-rfs-inode.c:339
int rtems_rfs_inode_close(rtems_rfs_file_system *fs, rtems_rfs_inode_handle *handle)
Definition: rtems-rfs-inode.c:110
int rtems_rfs_inode_free(rtems_rfs_file_system *fs, rtems_rfs_ino ino)
Definition: rtems-rfs-inode.c:63
uint32_t rtems_rfs_time
Definition: rtems-rfs-inode.h:102
int rtems_rfs_inode_initialise(rtems_rfs_inode_handle *handle, uint16_t links, uint16_t mode, uid_t uid, gid_t gid)
Definition: rtems-rfs-inode.c:392
int rtems_rfs_inode_create(rtems_rfs_file_system *fs, rtems_rfs_ino parent, const char *name, size_t length, uint16_t mode, uint16_t links, uid_t uid, gid_t gid, rtems_rfs_ino *ino)
Definition: rtems-rfs-inode.c:198
uint32_t rtems_rfs_inode_block
Definition: rtems-rfs-inode.h:108
#define RTEMS_RFS_INODE_DATA_NAME_SIZE
Definition: rtems-rfs-inode.h:113
struct _rtems_rfs_inode rtems_rfs_inode
int rtems_rfs_inode_load(rtems_rfs_file_system *fs, rtems_rfs_inode_handle *handle)
Definition: rtems-rfs-inode.c:133
rtems_rfs_pos rtems_rfs_inode_get_size(rtems_rfs_file_system *fs, rtems_rfs_inode_handle *handle)
Definition: rtems-rfs-inode.c:429
int rtems_rfs_inode_unload(rtems_rfs_file_system *fs, rtems_rfs_inode_handle *handle, bool update_ctime)
Definition: rtems-rfs-inode.c:164
int rtems_rfs_inode_time_stamp_now(rtems_rfs_inode_handle *handle, bool atime, bool mtime)
Definition: rtems-rfs-inode.c:413
uint32_t rtems_rfs_ino
Definition: rtems-rfs-inode.h:97
This structure represents a chain node.
Definition: chain.h:78
Definition: rtems-rfs-file-system.h:135
Definition: rtems-rfs-inode.h:201
rtems_rfs_buffer_block block
Definition: rtems-rfs-inode.h:225
int offset
Definition: rtems-rfs-inode.h:230
int loads
Definition: rtems-rfs-inode.h:235
rtems_rfs_ino ino
Definition: rtems-rfs-inode.h:210
rtems_rfs_buffer_handle buffer
Definition: rtems-rfs-inode.h:220
rtems_chain_node link
Definition: rtems-rfs-inode.h:205
rtems_rfs_inode * node
Definition: rtems-rfs-inode.h:215
Definition: rtems-rfs-inode.h:120
uint16_t mode
Definition: rtems-rfs-inode.h:129
uint32_t block_count
Definition: rtems-rfs-inode.h:149
uint16_t block_offset
Definition: rtems-rfs-inode.h:144
uint16_t links
Definition: rtems-rfs-inode.h:124
uint16_t flags
Definition: rtems-rfs-inode.h:139
rtems_rfs_inode_block last_map_block
Definition: rtems-rfs-inode.h:183
uint32_t owner
Definition: rtems-rfs-inode.h:134
rtems_rfs_time mtime
Definition: rtems-rfs-inode.h:159
union _rtems_rfs_inode::@4375 data
rtems_rfs_time ctime
Definition: rtems-rfs-inode.h:164
rtems_rfs_inode_block last_data_block
Definition: rtems-rfs-inode.h:188
rtems_rfs_time atime
Definition: rtems-rfs-inode.h:154
Definition: rtems-rfs-buffer.h:111