23#ifndef _MINIOS_FS_EXT2_H_
24#define _MINIOS_FS_EXT2_H_
34#define EXT2_MAGIC 0xEF53
35#define EXT2_ROOT_INO 2
38#define EXT2_S_IFREG 0x8000
39#define EXT2_S_IFDIR 0x4000
40#define EXT2_S_IFLNK 0xA000
41#define EXT2_S_IFCHR 0x2000
42#define EXT2_S_IFBLK 0x6000
45#define EXT2_FT_UNKNOWN 0
46#define EXT2_FT_REG_FILE 1
48#define EXT2_FT_CHRDEV 3
49#define EXT2_FT_BLKDEV 4
50#define EXT2_FT_SYMLINK 7
int ext2_mkdir(uint32_t parent_ino, const char *name, uint32_t *out_ino)
Definition ext2.c:1369
int ext2_write_file(uint32_t ino, uint64_t off, const void *buf, uint32_t len)
Definition ext2.c:1184
struct vfs_inode_info vfs_inode_info_t
Definition ext2.h:29
void ext2_init(void)
Definition ext2.c:2004
int ext2_lookup(const char *path, vfs_inode_info_t *out)
Definition ext2.c:733
int ext2_mknod(uint32_t parent_ino, const char *name, uint16_t mode, uint32_t dev, uint32_t *out_ino)
Definition ext2.c:1820
int ext2_create(uint32_t parent_ino, const char *name, uint16_t mode, uint32_t *out_ino)
Definition ext2.c:882
int ext2_mount(uint64_t part_lba_start, uint64_t part_lba_end)
Definition ext2.c:498
int ext2_readdir(uint32_t dir_ino, uint64_t *offset, vfs_dirent_cb_t cb, void *ud)
Definition ext2.c:556
int ext2_flush_inode(uint32_t ino)
Definition ext2.c:1341
int ext2_readlink(uint32_t ino, char *buf, uint32_t len)
Definition ext2.c:1019
int ext2_rmdir(uint32_t parent_ino, const char *name)
Definition ext2.c:1532
int ext2_symlink(uint32_t parent_ino, const char *name, const char *target)
Definition ext2.c:1060
int ext2_truncate_inode(uint32_t ino, uint64_t new_size)
Definition ext2.c:225
int ext2_read_file(uint32_t ino, uint64_t off, void *buf, uint32_t len)
Definition ext2.c:809
int(* vfs_dirent_cb_t)(const char *name, uint8_t name_len, uint32_t inode, uint8_t file_type, void *ud)
Definition fs_types.h:29
struct idt_entry_t * offset
Definition irq.h:1
uint16_t s_max_mnt_count
Definition ext2.h:73
uint8_t s_volume_name[16]
Definition ext2.h:92
uint16_t name[36]
Definition gpt.h:65
uint32_t s_algo_bitmap
Definition ext2.h:94
uint32_t bg_inode_bitmap
Definition ext2.h:103
uint32_t s_feature_incompat
Definition ext2.h:89
uint32_t s_log_block_size
Definition ext2.h:65
uint32_t s_wtime
Definition ext2.h:71
uint32_t i_osd1
Definition ext2.h:125
uint8_t i_osd2[12]
Definition ext2.h:131
uint16_t s_state
Definition ext2.h:75
uint16_t s_minor_rev_level
Definition ext2.h:77
uint32_t i_blocks
Definition ext2.h:123
uint16_t s_mnt_count
Definition ext2.h:72
uint32_t s_mtime
Definition ext2.h:70
uint32_t bg_block_bitmap
Definition ext2.h:102
uint32_t s_blocks_per_group
Definition ext2.h:67
uint16_t bg_pad
Definition ext2.h:108
uint8_t s_padding[820]
Definition ext2.h:96
uint32_t i_flags
Definition ext2.h:124
uint32_t i_dtime
Definition ext2.h:120
uint32_t inode
Definition ext2.h:136
uint8_t s_last_mounted[64]
Definition ext2.h:93
uint32_t i_faddr
Definition ext2.h:130
uint32_t s_feature_compat
Definition ext2.h:88
uint16_t s_magic
Definition ext2.h:74
uint32_t s_log_frag_size
Definition ext2.h:66
uint16_t i_gid
Definition ext2.h:121
uint32_t s_feature_ro_compat
Definition ext2.h:90
uint16_t bg_used_dirs_count
Definition ext2.h:107
uint16_t s_inode_size
Definition ext2.h:86
uint16_t i_uid
Definition ext2.h:115
uint16_t s_block_group_nr
Definition ext2.h:87
uint32_t s_creator_os
Definition ext2.h:80
uint32_t s_first_data_block
Definition ext2.h:64
uint32_t i_dir_acl
Definition ext2.h:129
uint32_t s_frags_per_group
Definition ext2.h:68
uint16_t bg_free_blocks_count
Definition ext2.h:105
uint32_t i_block[15]
Definition ext2.h:126
uint16_t i_links_count
Definition ext2.h:122
uint32_t s_inodes_per_group
Definition ext2.h:69
uint32_t i_size
Definition ext2.h:116
uint32_t s_blocks_count
Definition ext2.h:60
uint16_t s_def_resgid
Definition ext2.h:83
uint32_t s_r_blocks_count
Definition ext2.h:61
uint32_t s_free_inodes_count
Definition ext2.h:63
uint16_t i_mode
Definition ext2.h:114
uint32_t bg_inode_table
Definition ext2.h:104
uint16_t s_def_resuid
Definition ext2.h:82
uint32_t s_inodes_count
Definition ext2.h:59
uint8_t bg_reserved[12]
Definition ext2.h:109
uint16_t rec_len
Definition ext2.h:137
uint32_t s_rev_level
Definition ext2.h:81
uint32_t i_ctime
Definition ext2.h:118
uint32_t s_first_ino
Definition ext2.h:85
uint16_t bg_free_inodes_count
Definition ext2.h:106
uint32_t s_checkinterval
Definition ext2.h:79
uint8_t file_type
Definition ext2.h:139
uint8_t name_len
Definition ext2.h:138
uint16_t s_errors
Definition ext2.h:76
uint32_t i_file_acl
Definition ext2.h:128
uint32_t i_mtime
Definition ext2.h:119
uint8_t s_uuid[16]
Definition ext2.h:91
uint32_t i_atime
Definition ext2.h:117
uint32_t s_lastcheck
Definition ext2.h:78
uint32_t i_generation
Definition ext2.h:127
uint32_t s_free_blocks_count
Definition ext2.h:62
unsigned short uint16_t
Definition types.h:31
unsigned int uint32_t
Definition types.h:34
unsigned long int uint64_t
Definition types.h:37
unsigned char uint8_t
Definition types.h:28
uint32_t len
Definition virtio_net.c:1