blob: 7a02e9a8e36feb28a5f59aa2abf946e288240755
1 | /* vi: set sw=4 ts=4: */ |
2 | /* |
3 | * ext2fsP.h --- private header file for ext2 library |
4 | * |
5 | * Copyright (C) 1997 Theodore Ts'o. |
6 | * |
7 | * %Begin-Header% |
8 | * This file may be redistributed under the terms of the GNU Public |
9 | * License. |
10 | * %End-Header% |
11 | */ |
12 | |
13 | #include "ext2fs.h" |
14 | |
15 | /* |
16 | * Badblocks list |
17 | */ |
18 | struct ext2_struct_u32_list { |
19 | int magic; |
20 | int num; |
21 | int size; |
22 | __u32 *list; |
23 | int badblocks_flags; |
24 | }; |
25 | |
26 | struct ext2_struct_u32_iterate { |
27 | int magic; |
28 | ext2_u32_list bb; |
29 | int ptr; |
30 | }; |
31 | |
32 | |
33 | /* |
34 | * Directory block iterator definition |
35 | */ |
36 | struct ext2_struct_dblist { |
37 | int magic; |
38 | ext2_filsys fs; |
39 | ext2_ino_t size; |
40 | ext2_ino_t count; |
41 | int sorted; |
42 | struct ext2_db_entry * list; |
43 | }; |
44 | |
45 | /* |
46 | * For directory iterators |
47 | */ |
48 | struct dir_context { |
49 | ext2_ino_t dir; |
50 | int flags; |
51 | char *buf; |
52 | int (*func)(ext2_ino_t dir, |
53 | int entry, |
54 | struct ext2_dir_entry *dirent, |
55 | int offset, |
56 | int blocksize, |
57 | char *buf, |
58 | void *priv_data); |
59 | void *priv_data; |
60 | errcode_t errcode; |
61 | }; |
62 | |
63 | /* |
64 | * Inode cache structure |
65 | */ |
66 | struct ext2_inode_cache { |
67 | void * buffer; |
68 | blk_t buffer_blk; |
69 | int cache_last; |
70 | int cache_size; |
71 | int refcount; |
72 | struct ext2_inode_cache_ent *cache; |
73 | }; |
74 | |
75 | struct ext2_inode_cache_ent { |
76 | ext2_ino_t ino; |
77 | struct ext2_inode inode; |
78 | }; |
79 | |
80 | /* Function prototypes */ |
81 | |
82 | extern int ext2fs_process_dir_block(ext2_filsys fs, |
83 | blk_t *blocknr, |
84 | e2_blkcnt_t blockcnt, |
85 | blk_t ref_block, |
86 | int ref_offset, |
87 | void *priv_data); |
88 |