Home | History | Annotate | Download | only in uvm

Lines Matching defs:ra

104 ra_freectx(struct uvm_ractx *ra)
107 kmem_free(ra, sizeof(struct uvm_ractx));
189 struct uvm_ractx *ra;
191 ra = ra_allocctx();
192 if (ra != NULL) {
193 ra->ra_flags = 0;
196 return ra;
204 uvm_ra_freectx(struct uvm_ractx *ra)
207 KASSERT(ra != NULL);
208 ra_freectx(ra);
219 uvm_ra_request(struct uvm_ractx *ra, int advice, struct uvm_object *uobj,
225 if (ra == NULL || advice == UVM_ADV_RANDOM) {
235 if ((ra->ra_flags & RA_VALID) == 0) {
236 ra->ra_winstart = ra->ra_next = 0;
237 ra->ra_flags |= RA_VALID;
239 if (reqoff < ra->ra_winstart) {
240 ra->ra_next = reqoff;
242 ra->ra_winsize = RA_WINSIZE_SEQENTIAL;
259 if ((ra->ra_flags & RA_VALID) == 0) {
261 ra->ra_winstart = ra->ra_next = reqoff + reqsize;
262 ra->ra_winsize = RA_WINSIZE_INIT;
263 ra->ra_flags |= RA_VALID;
273 if (reqoff < ra->ra_winstart ||
274 ra->ra_winstart + ra->ra_winsize < reqoff) {
282 if (reqoff + reqsize == ra->ra_winstart) {
285 __func__, ra, reqoff, reqsize, ra->ra_winstart));
303 if (reqoff > ra->ra_next) {
304 ra->ra_next = reqoff;
312 if (reqoff + ra->ra_winsize > ra->ra_next) {
313 off_t raoff = MAX(reqoff, ra->ra_next);
314 size_t rasize = reqoff + ra->ra_winsize - ra->ra_next;
332 ra->ra_next = next;
343 ra->ra_winstart = reqoff + reqsize;
344 ra->ra_winsize = MIN(RA_WINSIZE_MAX, ra->ra_winsize + reqsize);