Lines Matching defs:vec
16 * @vec: structure which receives pages / pfns of the addresses mapped.
19 * This function maps virtual addresses from @start and fills @vec structure
39 unsigned int gup_flags, struct frame_vector *vec)
49 if (WARN_ON_ONCE(nr_frames > vec->nr_allocated))
50 nr_frames = vec->nr_allocated;
76 vec->got_ref = true;
77 vec->is_pfns = false;
79 gup_flags, (struct page **)(vec->ptrs), &locked);
84 vec->nr_frames = 0;
92 vec->nr_frames = ret;
100 * @vec: frame vector to put
106 void put_vaddr_frames(struct frame_vector *vec)
110 if (!vec->got_ref)
112 pages = frame_vector_pages(vec);
115 * get_vaddr_frames() got pages but vec was later converted to pfns.
121 unpin_user_pages(pages, vec->nr_frames);
122 vec->got_ref = false;
124 vec->nr_frames = 0;
130 * @vec: frame vector to convert
132 * Convert @vec to contain array of page pointers. If the conversion is
136 int frame_vector_to_pages(struct frame_vector *vec)
142 if (!vec->is_pfns)
144 nums = frame_vector_pfns(vec);
145 for (i = 0; i < vec->nr_frames; i++)
149 for (i = 0; i < vec->nr_frames; i++)
151 vec->is_pfns = false;
158 * @vec: frame vector to convert
160 * Convert @vec to contain array of pfns.
162 void frame_vector_to_pfns(struct frame_vector *vec)
168 if (vec->is_pfns)
170 pages = (struct page **)(vec->ptrs);
172 for (i = 0; i < vec->nr_frames; i++)
174 vec->is_pfns = true;
187 struct frame_vector *vec;
202 vec = kvmalloc(size, GFP_KERNEL);
203 if (!vec)
205 vec->nr_allocated = nr_frames;
206 vec->nr_frames = 0;
207 return vec;
213 * @vec: Frame vector to free
217 void frame_vector_destroy(struct frame_vector *vec)
220 VM_BUG_ON(vec->nr_frames > 0);
221 kvfree(vec);