Whamcloud - gitweb
ChangeLog, journal.c:
[tools/e2fsprogs.git] / e2fsck / jfs_e2fsck.h
1 #ifndef _JFS_E2FSCK_H
2 #define _JFS_E2FSCK_H
3
4 struct buffer_head {
5         char     b_data[8192];
6         e2fsck_t b_ctx;
7         io_channel b_io;
8         int      b_size;
9         blk_t    b_blocknr;
10         int      b_dirty;
11         int      b_uptodate;
12         int      b_err;
13 };
14
15 struct inode {
16         e2fsck_t i_ctx;
17         ino_t    i_ino;
18         struct ext2_inode i_ext2;
19 };
20
21 typedef e2fsck_t kdev_t;
22
23 int bmap(struct inode *inode, int block);
24 struct buffer_head *getblk(e2fsck_t ctx, blk_t blocknr, int blocksize);
25 void ll_rw_block(int rw, int dummy, struct buffer_head *bh[]);
26 void mark_buffer_dirty(struct buffer_head *bh, int dummy);
27 void brelse(struct buffer_head *bh);
28 int buffer_uptodate(struct buffer_head *bh);
29 void wait_on_buffer(struct buffer_head *bh);
30 #define fsync_dev(dev) do {} while(0)
31 #define buffer_req(bh) 1
32 #define do_readahead(journal, start) do {} while(0)
33         
34 extern e2fsck_t e2fsck_global_ctx;  /* Try your very best not to use this! */
35
36 typedef struct {
37         int     object_length;
38 } kmem_cache_t;
39
40 #define kmem_cache_alloc(cache,flags) malloc((cache)->object_length)
41 #define kmem_cache_free(cache,obj) free(obj)
42 #define kmem_cache_create(name,len,a,b,c,d) do_cache_create(len)
43 #define kmalloc(len,flags) malloc(len)
44 #define kfree(p) free(p)
45
46 static inline kmem_cache_t * do_cache_create(int len)
47 {
48         kmem_cache_t *new_cache;
49         new_cache = malloc(sizeof(*new_cache));
50         if (new_cache)
51                 new_cache->object_length = len;
52         return new_cache;
53 }
54
55 #endif /* _JFS_E2FSCK_H */
56