22#if !defined (_RTEMS_RFS_INODE_H_)
23#define _RTEMS_RFS_INODE_H_
33#define RTEMS_RFS_S_ISUID S_ISUID
34#define RTEMS_RFS_S_ISGID S_ISGID
35#define RTEMS_RFS_S_ISVTX S_ISVTX
36#define RTEMS_RFS_S_IREAD S_IREAD
37#define RTEMS_RFS_S_IWRITE S_IWRITE
38#define RTEMS_RFS_S_IEXEC S_IEXEC
39#define RTEMS_RFS_S_ENFMT S_ENFMT
40#define RTEMS_RFS_S_IFMT S_IFMT
41#define RTEMS_RFS_S_IFDIR S_IFDIR
42#define RTEMS_RFS_S_IFCHR S_IFCHR
43#define RTEMS_RFS_S_IFBLK S_IFBLK
44#define RTEMS_RFS_S_IFREG S_IFREG
45#define RTEMS_RFS_S_IFLNK S_IFLNK
46#define RTEMS_RFS_S_IFSOCK S_IFSOCK
47#define RTEMS_RFS_S_IFIFO S_IFIFO
48#define RTEMS_RFS_S_IRWXU S_IRWXU
49#define RTEMS_RFS_S_IRUSR S_IRUSR
50#define RTEMS_RFS_S_IWUSR S_IWUSR
51#define RTEMS_RFS_S_IXUSR S_IXUSR
52#define RTEMS_RFS_S_IRWXG S_IRWXG
53#define RTEMS_RFS_S_IRGRP S_IRGRP
54#define RTEMS_RFS_S_IWGRP S_IWGRP
55#define RTEMS_RFS_S_IXGRP S_IXGRP
56#define RTEMS_RFS_S_IRWXO S_IRWXO
57#define RTEMS_RFS_S_IROTH S_IROTH
58#define RTEMS_RFS_S_IWOTH S_IWOTH
59#define RTEMS_RFS_S_IXOTH S_IXOTH
61#define RTEMS_RFS_S_ISBLK(m) S_ISBLK(m)
62#define RTEMS_RFS_S_ISCHR(m) S_ISCHR(m)
63#define RTEMS_RFS_S_ISDIR(m) S_ISDIR(m)
64#define RTEMS_RFS_S_ISFIFO(m) S_ISFIFO(m)
65#define RTEMS_RFS_S_ISREG(m) S_ISREG(m)
66#define RTEMS_RFS_S_ISLNK(m) S_ISLNK(m)
67#define RTEMS_RFS_S_ISSOCK(m) S_ISSOCK(m)
72#define RTEMS_RFS_S_SYMLINK \
73 RTEMS_RFS_S_IFLNK | RTEMS_RFS_S_IRWXU | RTEMS_RFS_S_IRWXG | RTEMS_RFS_S_IRWXO
94#define RTEMS_RFS_INODE_DATA_NAME_SIZE \
95 (RTEMS_RFS_INODE_BLOCKS * sizeof (rtems_rfs_inode_block))
176#define RTEMS_RFS_INODE_SIZE (sizeof (rtems_rfs_inode))
223#define rtems_rfs_inode_is_loaded(_h) ((_h)->node)
228#define rtems_rfs_inode_ino(_h) ((_h)->ino)
237static inline uint16_t
267static inline uint16_t
293static inline uint16_t
319static inline uint16_t
332static inline uint16_t
347 uint16_t uid, uint16_t gid)
360static inline uint16_t
374 uint16_t block_offset)
387static inline uint32_t
495static inline uint32_t
522static inline uint32_t
549static inline uint32_t
int32_t rtems_rfs_bitmap_bit
Definition: rtems-rfs-bitmaps.h:84
uint32_t rtems_rfs_buffer_block
Definition: rtems-rfs-buffer.h:62
#define rtems_rfs_buffer_mark_dirty(_h)
Definition: rtems-rfs-buffer.h:144
#define rtems_rfs_write_u32(_d, _v)
Definition: rtems-rfs-data.h:81
#define rtems_rfs_read_u16(_d)
Definition: rtems-rfs-data.h:50
#define rtems_rfs_write_u16(_d, _v)
Definition: rtems-rfs-data.h:72
#define rtems_rfs_read_u32(_d)
Definition: rtems-rfs-data.h:57
#define RTEMS_RFS_INODE_BLOCKS
Definition: rtems-rfs-file-system.h:67
uint64_t rtems_rfs_pos
Definition: rtems-rfs-file-system.h:90
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:32
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:53
int rtems_rfs_inode_delete(rtems_rfs_file_system *fs, rtems_rfs_inode_handle *handle)
Definition: rtems-rfs-inode.c:320
int rtems_rfs_inode_close(rtems_rfs_file_system *fs, rtems_rfs_inode_handle *handle)
Definition: rtems-rfs-inode.c:91
int rtems_rfs_inode_free(rtems_rfs_file_system *fs, rtems_rfs_ino ino)
Definition: rtems-rfs-inode.c:44
uint32_t rtems_rfs_time
Definition: rtems-rfs-inode.h:83
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:373
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:179
uint32_t rtems_rfs_inode_block
Definition: rtems-rfs-inode.h:89
#define RTEMS_RFS_INODE_DATA_NAME_SIZE
Definition: rtems-rfs-inode.h:94
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:114
rtems_rfs_pos rtems_rfs_inode_get_size(rtems_rfs_file_system *fs, rtems_rfs_inode_handle *handle)
Definition: rtems-rfs-inode.c:410
int rtems_rfs_inode_unload(rtems_rfs_file_system *fs, rtems_rfs_inode_handle *handle, bool update_ctime)
Definition: rtems-rfs-inode.c:145
int rtems_rfs_inode_time_stamp_now(rtems_rfs_inode_handle *handle, bool atime, bool mtime)
Definition: rtems-rfs-inode.c:394
uint32_t rtems_rfs_ino
Definition: rtems-rfs-inode.h:78
Definition: rtems-rfs-file-system.h:116
Definition: rtems-rfs-inode.h:182
rtems_rfs_buffer_block block
Definition: rtems-rfs-inode.h:206
int offset
Definition: rtems-rfs-inode.h:211
int loads
Definition: rtems-rfs-inode.h:216
rtems_rfs_ino ino
Definition: rtems-rfs-inode.h:191
rtems_rfs_buffer_handle buffer
Definition: rtems-rfs-inode.h:201
rtems_chain_node link
Definition: rtems-rfs-inode.h:186
rtems_rfs_inode * node
Definition: rtems-rfs-inode.h:196
Definition: rtems-rfs-inode.h:101
uint16_t mode
Definition: rtems-rfs-inode.h:110
uint32_t block_count
Definition: rtems-rfs-inode.h:130
uint16_t block_offset
Definition: rtems-rfs-inode.h:125
union _rtems_rfs_inode::@3973 data
uint16_t links
Definition: rtems-rfs-inode.h:105
uint16_t flags
Definition: rtems-rfs-inode.h:120
rtems_rfs_inode_block last_map_block
Definition: rtems-rfs-inode.h:164
uint32_t owner
Definition: rtems-rfs-inode.h:115
rtems_rfs_time mtime
Definition: rtems-rfs-inode.h:140
rtems_rfs_time ctime
Definition: rtems-rfs-inode.h:145
rtems_rfs_inode_block last_data_block
Definition: rtems-rfs-inode.h:169
rtems_rfs_time atime
Definition: rtems-rfs-inode.h:135
Definition: rtems-rfs-buffer.h:92