1 #ifndef _REACTOS_TOOLS_CDMAKE_DIRHASH_H_
2 #define _REACTOS_TOOLS_CDMAKE_DIRHASH_H_
4 #define NUM_DIR_HASH_BUCKETS 1024
7 struct target_file
*next
;
12 struct target_dir_entry
{
13 struct target_dir_entry
*next
;
14 struct target_dir_entry
*parent
;
15 struct target_dir_entry
*child
;
16 struct target_file
*head
;
17 char *normalized_name
;
21 struct target_dir_hash
{
22 struct target_dir_entry
*buckets
[NUM_DIR_HASH_BUCKETS
];
23 struct target_dir_entry root
;
26 struct target_dir_traversal
{
27 struct target_dir_entry
*it
;
31 void normalize_dirname(char *filename
);
32 void dir_hash_add_file(struct target_dir_hash
*dh
, const char *source
, const char *target
);
33 struct target_dir_entry
*
34 dir_hash_create_dir(struct target_dir_hash
*dh
, const char *casename
, const char *targetnorm
);
35 struct target_dir_entry
*dir_hash_next_dir(struct target_dir_hash
*dh
, struct target_dir_traversal
*t
);
36 void dir_hash_destroy(struct target_dir_hash
*dh
);
38 #endif//_REACTOS_TOOLS_CDMAKE_DIRHASH_H_