Commit | Line | Data |
---|---|---|
b3b94faa DT |
1 | /* |
2 | * Copyright (C) Sistina Software, Inc. 1997-2003 All rights reserved. | |
3 | * Copyright (C) 2004-2005 Red Hat, Inc. All rights reserved. | |
4 | * | |
5 | * This copyrighted material is made available to anyone wishing to use, | |
6 | * modify, copy, or redistribute it subject to the terms and conditions | |
7 | * of the GNU General Public License v.2. | |
8 | */ | |
9 | ||
10 | #ifndef __FILE_DOT_H__ | |
11 | #define __FILE_DOT_H__ | |
12 | ||
13 | int gfs2_jdata_get_buffer(struct gfs2_inode *ip, uint64_t block, int new, | |
14 | struct buffer_head **bhp); | |
15 | ||
16 | typedef int (*read_copy_fn_t) (struct buffer_head *bh, char **buf, | |
17 | unsigned int offset, unsigned int size); | |
18 | typedef int (*write_copy_fn_t) (struct gfs2_inode *ip, | |
19 | struct buffer_head *bh, const char **buf, | |
20 | unsigned int offset, unsigned int size); | |
21 | ||
22 | int gfs2_copy2mem(struct buffer_head *bh, char **buf, | |
23 | unsigned int offset, unsigned int size); | |
24 | int gfs2_copy2user(struct buffer_head *bh, char __user **buf, | |
25 | unsigned int offset, unsigned int size); | |
26 | int gfs2_jdata_read(struct gfs2_inode *ip, char __user *buf, | |
27 | uint64_t offset, unsigned int size, | |
28 | read_copy_fn_t copy_fn); | |
29 | ||
30 | int gfs2_copy_from_mem(struct gfs2_inode *ip, | |
31 | struct buffer_head *bh, const char **buf, | |
32 | unsigned int offset, unsigned int size); | |
33 | int gfs2_copy_from_user(struct gfs2_inode *ip, | |
34 | struct buffer_head *bh, const char __user **buf, | |
35 | unsigned int offset, unsigned int size); | |
36 | int gfs2_jdata_write(struct gfs2_inode *ip, const char __user *buf, | |
37 | uint64_t offset, unsigned int size, | |
38 | write_copy_fn_t copy_fn); | |
39 | ||
40 | static inline int gfs2_jdata_read_mem(struct gfs2_inode *ip, char *buf, | |
41 | uint64_t offset, unsigned int size) | |
42 | { | |
43 | return gfs2_jdata_read(ip, (__force char __user *)buf, offset, size, gfs2_copy2mem); | |
44 | } | |
45 | ||
46 | static inline int gfs2_jdata_write_mem(struct gfs2_inode *ip, const char *buf, | |
47 | uint64_t offset, unsigned int size) | |
48 | { | |
49 | return gfs2_jdata_write(ip, (__force const char __user *)buf, offset, size, gfs2_copy_from_mem); | |
50 | } | |
51 | ||
52 | #endif /* __FILE_DOT_H__ */ |