Lines Matching defs:ar

45 uvm_page_array_init(struct uvm_page_array *ar, struct uvm_object *uobj,
49 ar->ar_idx = 0;
50 ar->ar_npages = 0;
51 ar->ar_uobj = uobj;
52 ar->ar_flags = flags;
60 uvm_page_array_fini(struct uvm_page_array *ar)
71 ar->ar_npages = 1;
72 ar->ar_idx = 1000;
81 uvm_page_array_clear(struct uvm_page_array *ar)
84 KASSERT(ar->ar_idx <= ar->ar_npages);
85 ar->ar_idx = 0;
86 ar->ar_npages = 0;
94 uvm_page_array_peek(struct uvm_page_array *ar)
97 KASSERT(ar->ar_idx <= ar->ar_npages);
98 if (ar->ar_idx == ar->ar_npages) {
101 return ar->ar_pages[ar->ar_idx];
109 uvm_page_array_advance(struct uvm_page_array *ar)
112 KASSERT(ar->ar_idx <= ar->ar_npages);
113 ar->ar_idx++;
114 KASSERT(ar->ar_idx <= ar->ar_npages);
132 uvm_page_array_fill(struct uvm_page_array *ar, voff_t off, unsigned int nwant)
138 unsigned int maxpages = __arraycount(ar->ar_pages);
139 struct uvm_object *uobj = ar->ar_uobj;
140 const int flags = ar->ar_flags;
151 KASSERT(uvm_page_array_peek(ar) == NULL);
161 &uobj->uo_pages, off >> PAGE_SHIFT, (void **)ar->ar_pages,
167 &uobj->uo_pages, off >> PAGE_SHIFT, (void **)ar->ar_pages,
188 ar->ar_pages[0] = NULL;
193 ar->ar_npages = npages;
194 ar->ar_idx = 0;
196 for (i = 0; error == 0 && i < ar->ar_npages; i++) {
197 struct vm_page * const pg = ar->ar_pages[i];
204 pg->offset < ar->ar_pages[i - 1]->offset);
208 pg->offset > ar->ar_pages[i - 1]->offset);
222 uvm_page_array_fill_and_peek(struct uvm_page_array *ar, voff_t off,
227 if (ar->ar_idx != ar->ar_npages) {
228 return ar->ar_pages[ar->ar_idx];
230 error = uvm_page_array_fill(ar, off, nwant);
234 return uvm_page_array_peek(ar);