ext2fsP.h revision 31dbecd482405e0d3a67eb58e1a1c8cb9f2ad83e
18a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com/* 28a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com * ext2fsP.h --- private header file for ext2 library 38a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com * 4f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com * Copyright (C) 1997 Theodore Ts'o. 5f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com * 6f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com * %Begin-Header% 7f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com * This file may be redistributed under the terms of the GNU Public 8f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com * License. 9f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com * %End-Header% 10f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com */ 11f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com 12f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com#include "ext2fs.h" 13f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com 14f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com/* 15f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com * Badblocks list 16f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com */ 17f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.comstruct ext2_struct_badblocks_list { 18f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com int magic; 19f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com int num; 20f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com int size; 21f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com blk_t *list; 22f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com int badblocks_flags; 23f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com}; 24f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com 25f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.comstruct ext2_struct_badblocks_iterate { 26f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com int magic; 27f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com badblocks_list bb; 28f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com int ptr; 29f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com}; 30f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com 31f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com 32f2eb5ab7806a62e89b8cb572b1b33b70b83b13abreed@google.com/* 338a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com * Directory block iterator definition 348a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com */ 358a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comstruct ext2_struct_dblist { 368a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com int magic; 378a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com ext2_filsys fs; 388a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com ext2_ino_t size; 398a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com ext2_ino_t count; 408a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com int sorted; 418a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com struct ext2_db_entry * list; 428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 438a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 448a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com/* 458a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com * For directory iterators 468a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com */ 4782065d667f64e232bcde2ad849756a6096fcbe6freed@google.comstruct dir_context { 488a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com ext2_ino_t dir; 498a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com int flags; 5082065d667f64e232bcde2ad849756a6096fcbe6freed@google.com char *buf; 518a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com int (*func)(struct ext2_dir_entry *dirent, 528a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com int offset, 538a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com int blocksize, 548a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com char *buf, 558a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void *priv_data); 568a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com int (*func2)(ext2_ino_t dir, 578a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com int entry, 588a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com struct ext2_dir_entry *dirent, 5982065d667f64e232bcde2ad849756a6096fcbe6freed@google.com int offset, 608a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com int blocksize, 618a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com char *buf, 6282065d667f64e232bcde2ad849756a6096fcbe6freed@google.com void *priv_data); 638a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void *priv_data; 648a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com errcode_t errcode; 658a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 668a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 678a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com/* 688a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com * Inode cache structure 698a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com */ 708a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comstruct ext2_inode_cache { 7182065d667f64e232bcde2ad849756a6096fcbe6freed@google.com void * buffer; 728a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com blk_t buffer_blk; 738a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com int cache_last; 7482065d667f64e232bcde2ad849756a6096fcbe6freed@google.com int cache_size; 758a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com int refcount; 768a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com struct ext2_inode_cache_ent *cache; 778a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 788a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 798a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comstruct ext2_inode_cache_ent { 808a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com ext2_ino_t ino; 818a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com struct ext2_inode inode; 828a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com}; 838a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 848a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com/* Function prototypes */ 858a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 868a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.comextern int ext2fs_process_dir_block(ext2_filsys fs, 878a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com blk_t *blocknr, 888a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com e2_blkcnt_t blockcnt, 898a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com blk_t ref_block, 908a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com int ref_offset, 918a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com void *priv_data); 928a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 938a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 948a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com