#include <stdint.h>
+struct ext4_dir_iter {
+ struct ext4_inode_ref *inode_ref;
+ struct ext4_block curr_blk;
+ uint64_t curr_off;
+ struct ext4_dir_en *curr;
+};
+
+struct ext4_dir_search_result {
+ struct ext4_block block;
+ struct ext4_dir_en *dentry;
+};
+
+
/**@brief Get i-node number from directory entry.
* @param de Directory entry
* @return I-node number
#include <stdint.h>
#include <stdbool.h>
+struct ext4_dir_idx_block {
+ struct ext4_block b;
+ struct ext4_dir_idx_entry *entries;
+ struct ext4_dir_idx_entry *position;
+};
+
#define EXT4_DIR_DX_INIT_BCNT 2
+
/**@brief Initialize index structure of new directory.
* @param dir Pointer to directory i-node
* @param dir Pointer to parent directory i-node
bool dirty;
};
+struct ext4_inode_ref {
+ struct ext4_block block;
+ struct ext4_inode *inode;
+ struct ext4_fs *fs;
+ uint32_t index;
+ bool dirty;
+};
+
/**@brief Convert block address to relative index in block group.
* @param sb Superblock pointer
#define EXT4_INODE_ROOT_INDEX 2
-struct ext4_inode_ref {
- struct ext4_block block;
- struct ext4_inode *inode;
- struct ext4_fs *fs;
- uint32_t index;
- bool dirty;
-};
#define EXT4_DIRECTORY_FILENAME_LEN 255
uint8_t name[EXT4_DIRECTORY_FILENAME_LEN]; /* Entry name */
};
-struct ext4_dir_iter {
- struct ext4_inode_ref *inode_ref;
- struct ext4_block curr_blk;
- uint64_t curr_off;
- struct ext4_dir_en *curr;
-};
-
-struct ext4_dir_search_result {
- struct ext4_block block;
- struct ext4_dir_en *dentry;
-};
-
/* Structures for indexed directory */
struct ext4_dir_idx_climit {
struct ext4_dir_idx_entry entries[];
};
-struct ext4_dir_idx_block {
- struct ext4_block b;
- struct ext4_dir_idx_entry *entries;
- struct ext4_dir_idx_entry *position;
-};
-
/*
* This goes at the end of each htree block.
*/