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