Lines Matching defs:ubc_object
81 ubc_object.hashmask)
84 (&ubc_object.inactive[(((u_long)(offset)) >> ubc_winshift) & \
88 (vaddr_t)(ubc_object.kva + (((u) - ubc_object.umap) << ubc_winshift))
109 static struct ubc_object {
111 char *kva; /* where ubc_object is mapped */
119 } ubc_object;
174 * init ubc_object.
178 * map in ubc_object.
181 uvm_obj_init(&ubc_object.uobj, &ubc_pager, true, UVM_OBJ_KERN);
183 ubc_object.umap = kmem_zalloc(ubc_nwins * sizeof(struct ubc_map),
185 if (ubc_object.umap == NULL)
196 ubc_object.inactive = kmem_alloc(UBC_NQUEUES *
199 TAILQ_INIT(&ubc_object.inactive[i]);
203 umap = &ubc_object.umap[i];
204 TAILQ_INSERT_TAIL(&ubc_object.inactive[i & (UBC_NQUEUES - 1)],
208 ubc_object.hash = hashinit(ubc_nwins, HASH_LIST, true,
209 &ubc_object.hashmask);
210 for (int i = 0; i <= ubc_object.hashmask; i++) {
211 LIST_INIT(&ubc_object.hash[i]);
214 if (uvm_map(kernel_map, (vaddr_t *)&ubc_object.kva,
215 ubc_nwins << ubc_winshift, &ubc_object.uobj, 0, (vsize_t)va,
218 panic("ubc_init: failed to map ubc_object");
327 uvmfault_unlockall(ufi, NULL, &ubc_object.uobj);
332 ubc_offset = va - (vaddr_t)ubc_object.kva;
333 umap = &ubc_object.umap[ubc_offset >> ubc_winshift];
464 LIST_FOREACH(umap, &ubc_object.hash[UBC_HASH(uobj, offset)], hash) {
499 rw_enter(ubc_object.uobj.vmobjlock, RW_WRITER);
512 rw_exit(ubc_object.uobj.vmobjlock);
514 rw_enter(ubc_object.uobj.vmobjlock, RW_WRITER);
545 LIST_INSERT_HEAD(&ubc_object.hash[UBC_HASH(uobj, umap_offset)],
568 rw_exit(ubc_object.uobj.vmobjlock);
652 umap = &ubc_object.umap[((char *)va - ubc_object.kva) >> ubc_winshift];
699 rw_enter(ubc_object.uobj.vmobjlock, RW_WRITER);
732 rw_exit(ubc_object.uobj.vmobjlock);
1099 rw_enter(ubc_object.uobj.vmobjlock, RW_WRITER);
1111 rw_exit(ubc_object.uobj.vmobjlock);
1125 hs->hash_size = ubc_object.hashmask + 1;
1129 rw_enter(ubc_object.uobj.vmobjlock, RW_READER);
1130 LIST_FOREACH(umap, &ubc_object.hash[i], hash) {
1133 rw_exit(ubc_object.uobj.vmobjlock);