• Home
  • Raw
  • Download

Lines Matching full:vec

16  * @vec:	structure which receives pages / pfns of the addresses mapped.
19 * This function maps virtual addresses from @start and fills @vec structure
35 unsigned int gup_flags, struct frame_vector *vec) in get_vaddr_frames() argument
46 if (WARN_ON_ONCE(nr_frames > vec->nr_allocated)) in get_vaddr_frames()
47 nr_frames = vec->nr_allocated; in get_vaddr_frames()
71 vec->got_ref = true; in get_vaddr_frames()
72 vec->is_pfns = false; in get_vaddr_frames()
74 gup_flags, (struct page **)(vec->ptrs), &locked); in get_vaddr_frames()
78 vec->got_ref = false; in get_vaddr_frames()
79 vec->is_pfns = true; in get_vaddr_frames()
81 unsigned long *nums = frame_vector_pfns(vec); in get_vaddr_frames()
107 vec->nr_frames = ret; in get_vaddr_frames()
115 * @vec: frame vector to put
121 void put_vaddr_frames(struct frame_vector *vec) in put_vaddr_frames() argument
126 if (!vec->got_ref) in put_vaddr_frames()
128 pages = frame_vector_pages(vec); in put_vaddr_frames()
131 * get_vaddr_frames() got pages but vec was later converted to pfns. in put_vaddr_frames()
136 for (i = 0; i < vec->nr_frames; i++) in put_vaddr_frames()
138 vec->got_ref = false; in put_vaddr_frames()
140 vec->nr_frames = 0; in put_vaddr_frames()
146 * @vec: frame vector to convert
148 * Convert @vec to contain array of page pointers. If the conversion is
152 int frame_vector_to_pages(struct frame_vector *vec) in frame_vector_to_pages() argument
158 if (!vec->is_pfns) in frame_vector_to_pages()
160 nums = frame_vector_pfns(vec); in frame_vector_to_pages()
161 for (i = 0; i < vec->nr_frames; i++) in frame_vector_to_pages()
165 for (i = 0; i < vec->nr_frames; i++) in frame_vector_to_pages()
167 vec->is_pfns = false; in frame_vector_to_pages()
174 * @vec: frame vector to convert
176 * Convert @vec to contain array of pfns.
178 void frame_vector_to_pfns(struct frame_vector *vec) in frame_vector_to_pfns() argument
184 if (vec->is_pfns) in frame_vector_to_pfns()
186 pages = (struct page **)(vec->ptrs); in frame_vector_to_pfns()
188 for (i = 0; i < vec->nr_frames; i++) in frame_vector_to_pfns()
190 vec->is_pfns = true; in frame_vector_to_pfns()
203 struct frame_vector *vec; in frame_vector_create() local
218 vec = kvmalloc(size, GFP_KERNEL); in frame_vector_create()
219 if (!vec) in frame_vector_create()
221 vec->nr_allocated = nr_frames; in frame_vector_create()
222 vec->nr_frames = 0; in frame_vector_create()
223 return vec; in frame_vector_create()
229 * @vec: Frame vector to free
233 void frame_vector_destroy(struct frame_vector *vec) in frame_vector_destroy() argument
236 VM_BUG_ON(vec->nr_frames > 0); in frame_vector_destroy()
237 kvfree(vec); in frame_vector_destroy()