Changeset 9b9d37bb in mainline for uspace/lib/ext4/libext4_directory.h
- Timestamp:
- 2011-10-06T09:48:53Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1114173
- Parents:
- 3712434
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ext4/libext4_directory.h
r3712434 r9b9d37bb 34 34 #define LIBEXT4_LIBEXT4_DIRECTORY_H_ 35 35 36 #include "libext4_filesystem.h" 37 #include "libext4_inode.h" 38 39 /** 40 * Linked list directory entry structure 41 */ 42 typedef struct ext4_directory_entry_ll { 43 uint32_t inode; // Inode for the entry 44 uint16_t entry_length; // Distance to the next directory entry 45 uint8_t name_length; // Lower 8 bits of name length 46 union { 47 uint8_t name_length_high; // Higher 8 bits of name length 48 uint8_t inode_type; // Type of referenced inode (in rev >= 0.5) 49 } __attribute__ ((packed)); 50 uint8_t name; // First byte of name, if present 51 } __attribute__ ((packed)) ext4_directory_entry_ll_t; 52 53 typedef struct ext4_directory_iterator { 54 ext4_filesystem_t *fs; 55 ext4_inode_ref_t *inode_ref; 56 block_t *current_block; 57 aoff64_t current_offset; 58 ext4_directory_entry_ll_t *current; 59 } ext4_directory_iterator_t; 60 61 extern uint32_t ext4_directory_entry_ll_get_inode(ext4_directory_entry_ll_t *); 62 extern uint16_t ext4_directory_entry_ll_get_entry_length( 63 ext4_directory_entry_ll_t *); 64 extern uint16_t ext4_directory_entry_ll_get_name_length( 65 ext4_superblock_t *, ext4_directory_entry_ll_t *); 66 67 extern int ext4_directory_iterator_init(ext4_directory_iterator_t *, 68 ext4_filesystem_t *, ext4_inode_ref_t *, aoff64_t); 69 extern int ext4_directory_iterator_next(ext4_directory_iterator_t *); 70 extern int ext4_directory_iterator_seek(ext4_directory_iterator_t *, aoff64_t pos); 71 extern int ext4_directory_iterator_fini(ext4_directory_iterator_t *); 36 72 37 73 #endif
Note:
See TracChangeset
for help on using the changeset viewer.