handle null IO buffers gracefully
[cryptodev-linux.git] / zc.h
blob757767733f862bda52afebb97b1c51c0c3f2df0f
1 #ifndef ZC_H
2 # define ZC_H
4 #include "cryptodev_int.h"
6 /* For zero copy */
7 int __get_userbuf(uint8_t __user *addr, uint32_t len, int write,
8 unsigned int pgcount, struct page **pg, struct scatterlist *sg,
9 struct task_struct *task, struct mm_struct *mm);
10 void release_user_pages(struct csession* ses);
12 int get_userbuf(struct csession *ses,
13 void* __user src, unsigned int src_len,
14 void* __user dst, unsigned int dst_len,
15 struct task_struct *task, struct mm_struct *mm,
16 struct scatterlist **src_sg,
17 struct scatterlist **dst_sg);
19 /* last page - first page + 1 */
20 #define PAGECOUNT(buf, buflen) \
21 ((((unsigned long)(buf + buflen - 1) & PAGE_MASK) >> PAGE_SHIFT) - \
22 (((unsigned long) buf & PAGE_MASK) >> PAGE_SHIFT) + 1)
24 #define DEFAULT_PREALLOC_PAGES 32
26 #endif