29 #ifndef _EXT2_INTERNAL_H_
30 #define _EXT2_INTERNAL_H_
35 #define EXT2_ROOT_INO 2
43 struct ext2_super_block {
77 char s_volume_name[16];
78 char s_last_mounted[64];
102 #define EXT2_OS_LINUX 0
103 #define EXT2_OS_HURD 1
104 #define EXT2_OS_MASIX 2
105 #define EXT2_OS_FREEBSD 3
106 #define EXT2_OS_LITES 4
111 #define EXT2_GOOD_OLD_REV 0
112 #define EXT2_DYNAMIC_REV 1
117 struct ext2_group_desc {
162 #define EXT2_FT_UNKNOWN 0
163 #define EXT2_FT_REG_FILE 1
164 #define EXT2_FT_DIR 2
165 #define EXT2_FT_CHRDEV 3
166 #define EXT2_FT_BLKDEV 4
167 #define EXT2_FT_FIFO 5
168 #define EXT2_FT_SOCK 6
169 #define EXT2_FT_SYMLINK 7
175 struct ext2_directory {
192 #define EXT2_S_IFSOCK 0xC000
193 #define EXT2_S_IFLNK 0xA000
194 #define EXT2_S_IFREG 0x8000
195 #define EXT2_S_IFBLK 0x6000
196 #define EXT2_S_IFDIR 0x4000
197 #define EXT2_S_IFCHR 0x2000
198 #define EXT2_S_IFIFO 0x1000
199 // -- process execution user/group override --
200 #define EXT2_S_ISUID 0x0800
201 #define EXT2_S_ISGID 0x0400
202 #define EXT2_S_ISVTX 0x0200
203 // -- access rights --
204 #define EXT2_S_IRUSR 0x0100
205 #define EXT2_S_IWUSR 0x0080
206 #define EXT2_S_IXUSR 0x0040
207 #define EXT2_S_IRGRP 0x0020
208 #define EXT2_S_IWGRP 0x0010
209 #define EXT2_S_IXGRP 0x0008
210 #define EXT2_S_IROTH 0x0004
211 #define EXT2_S_IWOTH 0x0002
212 #define EXT2_S_IXOTH 0x0001
217 typedef struct _ext2_fs_instance_t {
uint16_t bg_free_blocks_count
Definition: ext2_internal.h:121
blkdev_write_t write_data
Definition: ext2_internal.h:224
uint32_t s_inodes_count
Definition: ext2_internal.h:44
int ext2_unlink(inode_t *dir, dentry_t *dentry)
Suppression d'un noeud.
Definition: ext2_functions.c:93
Definition: ext2_internal.h:140
uint32_t bg_block_bitmap
Definition: ext2_internal.h:118
uint8_t s_prealloc_dir_blocks
Definition: ext2_internal.h:82
uint32_t s_free_blocks_count
Definition: ext2_internal.h:47
Definition: ext2_internal.h:117
uint16_t bg_pad
Definition: ext2_internal.h:124
uint32_t s_r_blocks_count
Definition: ext2_internal.h:46
uint16_t s_block_group_nr
Definition: ext2_internal.h:72
uint32_t s_log_frag_size
Definition: ext2_internal.h:51
struct ext2_directory * dir
Definition: ext2_internal.h:187
uint32_t i_dtime
Definition: ext2_internal.h:147
int ext2_truncate(inode_t *inode, off_t off)
Change la taille d'un fichier.
Definition: ext2_functions.c:332
Structure qui représente une entrée dans un dossier ext2. Format imposé par Ext2. ...
Definition: ext2_internal.h:175
uint32_t s_default_mount_opts
Definition: ext2_internal.h:94
struct ext2_inode * inodes
Definition: ext2_internal.h:133
Instance de FS Ext2.
Definition: ext2_internal.h:217
uint32_t s_first_ino
Definition: ext2_internal.h:70
ssize_t ext2_read(open_file_descriptor *ofd, void *buf, size_t size)
Lecture d'un fichier.
Definition: ext2_functions.c:261
uint16_t bg_used_dirs_count
Definition: ext2_internal.h:123
uint32_t s_log_block_size
Definition: ext2_internal.h:50
uint32_t s_feature_compat
Definition: ext2_internal.h:73
uint16_t s_magic
Definition: ext2_internal.h:59
uint16_t s_padding1
Definition: ext2_internal.h:83
uint32_t i_generation
Definition: ext2_internal.h:154
uint16_t i_mode
Definition: ext2_internal.h:141
uint32_t s_blocks_count
Definition: ext2_internal.h:45
uint32_t s_free_inodes_count
Definition: ext2_internal.h:48
uint32_t inode
Definition: ext2_internal.h:176
uint16_t i_uid
Definition: ext2_internal.h:142
Instance d'un couple FS/Device monté.
Definition: vfs.h:54
uint16_t i_links_count
Definition: ext2_internal.h:149
uint8_t s_def_hash_version
Definition: ext2_internal.h:91
uint32_t i_mtime
Definition: ext2_internal.h:146
uint16_t s_mnt_count
Definition: ext2_internal.h:57
Definition: ext2_internal.h:43
int ext2_seek(open_file_descriptor *ofd, long offset, int whence)
Definition: ext2_functions.c:168
unsigned short int uint16_t
Definition: types.h:35
uint16_t rec_len
Definition: ext2_internal.h:177
uint32_t i_faddr
Definition: ext2_internal.h:157
fs_instance_t super
Definition: ext2_internal.h:218
uint16_t bg_free_inodes_count
Definition: ext2_internal.h:122
uint32_t i_dir_acl
Definition: ext2_internal.h:156
uint16_t s_max_mnt_count
Definition: ext2_internal.h:58
uint32_t s_last_orphan
Definition: ext2_internal.h:88
uint32_t s_frags_per_group
Definition: ext2_internal.h:53
dentry_t * root
Definition: ext2_internal.h:219
uint32_t s_mtime
Definition: ext2_internal.h:55
uint32_t i_osd1
Definition: ext2_internal.h:152
uint8_t * inode_bitmap
Definition: ext2_internal.h:132
uint32_t s_lastcheck
Definition: ext2_internal.h:63
uint32_t i_ctime
Definition: ext2_internal.h:145
uint32_t s_journal_dev
Definition: ext2_internal.h:87
int ext2_mknod(inode_t *dir, dentry_t *dentry, mode_t mode, dev_t dev)
Création d'un noeud (fichier, dossier, fichier spécial...)
Definition: ext2_functions.c:318
uint32_t i_atime
Definition: ext2_internal.h:144
uint16_t s_inode_size
Definition: ext2_internal.h:71
Structure chaînée pour enregistrer les entrées d'un dossier.
Definition: ext2_internal.h:186
uint32_t s_wtime
Definition: ext2_internal.h:56
uint16_t s_state
Definition: ext2_internal.h:60
unsigned char uint8_t
Definition: types.h:34
int ext2_setattr(inode_t *inode, file_attributes_t *attr)
Definition: ext2_functions.c:63
int ext2_close(open_file_descriptor *ofd)
Fermeture d'un fichier ouvert.
Definition: ext2_functions.c:411
int ext2_readdir(open_file_descriptor *ofd, char *entries, size_t size)
Lecture du contenu d'un dossier.
Definition: ext2_functions.c:111
uint32_t dev_t
Definition: kstat.h:64
int ext2_rename(inode_t *old_dir, dentry_t *old_dentry, inode_t *new_dir, dentry_t *new_dentry)
Renomme ou déplace un fichier.
Definition: ext2_functions.c:38
uint16_t s_def_resgid
Definition: ext2_internal.h:68
uint32_t i_size
Definition: ext2_internal.h:143
dentry_t * ext2_lookup(struct _fs_instance_t *instance, struct _dentry_t *dentry, const char *name)
Definition: ext2_functions.c:379
uint32_t s_creator_os
Definition: ext2_internal.h:65
Informations sur un noeud.
Definition: kstat.h:75
uint8_t name_len
Definition: ext2_internal.h:178
uint32_t s_rev_level
Definition: ext2_internal.h:66
int n_groups
Definition: ext2_internal.h:222
Definition: fd_types.h:49
uint32_t s_feature_incompat
Definition: ext2_internal.h:74
uint16_t i_gid
Definition: ext2_internal.h:148
void umount_EXT2(fs_instance_t *instance)
Unmount d'un point de montage.
Definition: ext2.c:115
uint32_t s_blocks_per_group
Definition: ext2_internal.h:52
struct _open_file_operations_t ext2fs_fops
Definition: ext2_internal.c:9
uint32_t s_algorithm_usage_bitmap
Definition: ext2_internal.h:79
uint32_t mode_t
Definition: kstat.h:63
struct ext2_group_desc_internal * group_desc_table_internal
Definition: ext2_internal.h:225
uint32_t s_first_meta_bg
Definition: ext2_internal.h:95
int ssize_t
Definition: types.h:44
uint8_t file_type
Definition: ext2_internal.h:179
uint16_t s_def_resuid
Definition: ext2_internal.h:67
uint16_t s_errors
Definition: ext2_internal.h:61
uint32_t s_first_data_block
Definition: ext2_internal.h:49
uint32_t i_file_acl
Definition: ext2_internal.h:155
uint32_t i_blocks
Definition: ext2_internal.h:150
ssize_t ext2_write(open_file_descriptor *ofd, const void *buf, size_t size)
Ecriture d'un fichier.
Definition: ext2_functions.c:193
uint32_t bg_inode_table
Definition: ext2_internal.h:120
uint8_t s_prealloc_blocks
Definition: ext2_internal.h:81
int ext2_rmdir(inode_t *dir, dentry_t *dentry)
Suppression d'un dossier vide.
Definition: ext2_functions.c:47
int ext2_stat(fs_instance_t *instance, const char *path, struct stat *stbuf)
Récupère l'état d'un fichier ou dossier.
struct ext2_group_desc * group_desc_table
Definition: ext2_internal.h:221
uint32_t s_journal_inum
Definition: ext2_internal.h:86
unsigned long int uint32_t
Definition: types.h:36
uint32_t s_inodes_per_group
Definition: ext2_internal.h:54
uint32_t s_feature_ro_compat
Definition: ext2_internal.h:75
uint32_t i_osd2[3]
Definition: ext2_internal.h:158
struct _ext2_fs_instance_t ext2_fs_instance_t
Instance de FS Ext2.
uint32_t bg_inode_bitmap
Definition: ext2_internal.h:119
dentry_t * ext2_getroot(struct _fs_instance_t *instance)
Definition: ext2_functions.c:375
blkdev_read_t read_data
Definition: ext2_internal.h:223
Definition: vga_modes.h:37
Definition: fd_types.h:91
uint32_t s_checkinterval
Definition: ext2_internal.h:64
struct directories_t * next
Definition: ext2_internal.h:188
uint32_t i_block[15]
Definition: ext2_internal.h:153
int ext2_mkdir(inode_t *dir, dentry_t *dentry, mode_t mode)
Création d'un dossier.
Definition: ext2_functions.c:100
uint16_t s_minor_rev_level
Definition: ext2_internal.h:62
uint32_t i_flags
Definition: ext2_internal.h:151
Definition: ext2_internal.h:131