1 /* 2 * dir.h - Header file for dir.c 3 * 4 * Copyright (C) 1997 R�gis Duchesne 5 */ 6 #define ITERATE_SPLIT_DONE 1 7 8 enum ntfs_iterate_e { 9 BY_POSITION, 10 BY_NAME, 11 DIR_INSERT 12 }; 13 14 /* not all fields are used for all operations */ 15 typedef struct ntfs_iterate_s { 16 enum ntfs_iterate_e type; 17 ntfs_inode *dir; 18 union{ 19 ntfs_u64 pos; 20 int flags; 21 }u; 22 char *result; /* pointer to entry if found */ 23 ntfs_u16* name; 24 int namelen; 25 int block; /* current index record */ 26 int newblock; /* index record created in a split */ 27 char *new_entry; 28 int new_entry_size; 29 /*ntfs_inode* new;*/ 30 } ntfs_iterate_s; 31 32 int ntfs_getdir_unsorted(ntfs_inode *ino, ntfs_u32 *p_high, ntfs_u32* p_low, 33 int (*cb)(ntfs_u8*, void*), void *param); 34 35 int ntfs_getdir_byname(ntfs_iterate_s *walk); 36 37 int ntfs_dir_add(ntfs_inode *dir, ntfs_inode *new, ntfs_attribute *name); 38 39 int ntfs_check_index_record(ntfs_inode *ino, char *record); 40 41 int ntfs_getdir_byposition(ntfs_iterate_s *walk); 42 43 int ntfs_mkdir(ntfs_inode* dir,const char* name,int namelen, ntfs_inode *ino); 44 45 int ntfs_split_indexroot(ntfs_inode *ino); 46 47 int ntfs_add_index_root(ntfs_inode *ino, int type); 48 49