2026-03-06 20:17:23 +00:00
|
|
|
#ifndef FS_INODE_H_
|
|
|
|
|
#define FS_INODE_H_
|
|
|
|
|
|
2026-03-10 19:15:26 +00:00
|
|
|
#include <fs/status.h>
|
|
|
|
|
#include <stddef.h>
|
|
|
|
|
|
2026-03-06 20:17:23 +00:00
|
|
|
struct fs_inode;
|
|
|
|
|
struct fs_dentry;
|
|
|
|
|
struct fs_superblock;
|
2026-03-10 19:15:26 +00:00
|
|
|
struct fs_file_ops;
|
|
|
|
|
|
|
|
|
|
enum fs_inode_mode {
|
|
|
|
|
FS_INODE_REG = 0x01u,
|
|
|
|
|
FS_INODE_DIR = 0x02u,
|
|
|
|
|
};
|
2026-03-06 20:17:23 +00:00
|
|
|
|
|
|
|
|
struct fs_inode_ops {
|
2026-03-10 19:15:26 +00:00
|
|
|
enum fs_status (*i_lookup)(
|
|
|
|
|
struct fs_inode *,
|
|
|
|
|
const char *,
|
|
|
|
|
struct fs_dentry **);
|
2026-03-06 20:17:23 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct fs_inode {
|
2026-03-10 19:15:26 +00:00
|
|
|
enum fs_inode_mode i_mode;
|
2026-03-06 20:17:23 +00:00
|
|
|
struct fs_superblock *i_sb;
|
|
|
|
|
const struct fs_inode_ops *i_ops;
|
2026-03-10 19:15:26 +00:00
|
|
|
const struct fs_file_ops *i_fops;
|
|
|
|
|
size_t i_size;
|
2026-03-06 20:17:23 +00:00
|
|
|
};
|
|
|
|
|
|
2026-03-10 19:15:26 +00:00
|
|
|
extern enum fs_status fs_inode_lookup(
|
|
|
|
|
struct fs_inode *inode,
|
|
|
|
|
const char *name,
|
|
|
|
|
struct fs_dentry **out);
|
|
|
|
|
|
2026-03-06 20:17:23 +00:00
|
|
|
#endif
|