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