d1aedb52a877edc93bffc2b88fe036af81167882
2 * (C) 2001 Clemson University and The University of Chicago
4 * See COPYING in top-level directory.
7 #ifndef __PVFS2_BUFMAP_H
8 #define __PVFS2_BUFMAP_H
10 /* used to describe mapped buffers */
11 struct pvfs_bufmap_desc
{
12 void *uaddr
; /* user space address pointer */
13 struct page
**page_array
; /* array of mapped pages */
14 int array_count
; /* size of above arrays */
15 struct list_head list_link
;
20 struct pvfs2_bufmap
*pvfs2_bufmap_ref(void);
21 void pvfs2_bufmap_unref(struct pvfs2_bufmap
*bufmap
);
24 * pvfs_bufmap_size_query is now an inline function because buffer
25 * sizes are not hardcoded
27 int pvfs_bufmap_size_query(void);
29 int pvfs_bufmap_shift_query(void);
31 int pvfs_bufmap_initialize(struct PVFS_dev_map_desc
*user_desc
);
33 int get_bufmap_init(void);
35 void pvfs_bufmap_finalize(void);
37 int pvfs_bufmap_get(struct pvfs2_bufmap
**mapp
, int *buffer_index
);
39 void pvfs_bufmap_put(struct pvfs2_bufmap
*bufmap
, int buffer_index
);
41 int readdir_index_get(struct pvfs2_bufmap
**mapp
, int *buffer_index
);
43 void readdir_index_put(struct pvfs2_bufmap
*bufmap
, int buffer_index
);
45 int pvfs_bufmap_copy_from_iovec(struct pvfs2_bufmap
*bufmap
,
46 struct iov_iter
*iter
,
50 int pvfs_bufmap_copy_to_iovec(struct pvfs2_bufmap
*bufmap
,
51 struct iov_iter
*iter
,
55 size_t pvfs_bufmap_copy_to_user_task_iovec(struct task_struct
*tsk
,
57 unsigned long nr_segs
,
58 struct pvfs2_bufmap
*bufmap
,
60 size_t bytes_to_be_copied
);
62 #endif /* __PVFS2_BUFMAP_H */
This page took 0.048371 seconds and 4 git commands to generate.