Lines Matching refs:gref
258 struct gntdev_gref *gref, *gref_tmp, *gref_previous; in gref_list_dtor() local
266 STAILQ_FOREACH_SAFE(gref, &tmp_grefs, gref_next.list, gref_tmp) { in gref_list_dtor()
267 if (gref->page && gref->page->object == NULL) { in gref_list_dtor()
268 if (gref->notify) { in gref_list_dtor()
269 notify(gref->notify, gref->page); in gref_list_dtor()
271 if (gref->gref_id != GRANT_REF_INVALID) { in gref_list_dtor()
272 if (gnttab_query_foreign_access(gref->gref_id)) in gref_list_dtor()
274 if (gnttab_end_foreign_access_ref(gref->gref_id) in gref_list_dtor()
277 gnttab_free_grant_reference(gref->gref_id); in gref_list_dtor()
279 vm_page_unwire_noq(gref->page); in gref_list_dtor()
280 vm_page_free(gref->page); in gref_list_dtor()
281 gref->page = NULL; in gref_list_dtor()
283 if (gref->page == NULL) { in gref_list_dtor()
289 if (gref->notify) in gref_list_dtor()
290 free(gref->notify, M_GNTDEV); in gref_list_dtor()
291 free(gref, M_GNTDEV); in gref_list_dtor()
294 gref_previous = gref; in gref_list_dtor()
312 struct gntdev_gref find_gref, *gref, *gref_start = NULL; in gntdev_find_grefs() local
318 for (gref = gref_start; gref != NULL && count > 0; gref = in gntdev_find_grefs()
319 RB_NEXT(gref_tree_head, &priv_user->gref_tree, gref)) { in gntdev_find_grefs()
320 if (index != gref->file_index) in gntdev_find_grefs()
432 struct gntdev_gref *gref, *gref_tmp; in gntdev_dealloc_gref() local
439 gref = gntdev_find_grefs(priv_user, arg->index, arg->count); in gntdev_dealloc_gref()
440 if (gref == NULL) { in gntdev_dealloc_gref()
449 for (; gref != NULL && count > 0; gref = gref_tmp) { in gntdev_dealloc_gref()
450 gref_tmp = RB_NEXT(gref_tree_head, &priv_user->gref_tree, gref); in gntdev_dealloc_gref()
451 RB_REMOVE(gref_tree_head, &priv_user->gref_tree, gref); in gntdev_dealloc_gref()
452 STAILQ_INSERT_TAIL(&cleanup_data.to_kill_grefs, gref, in gntdev_dealloc_gref()
898 struct gntdev_gref *gref = NULL; in gntdev_set_unmap_notify() local
909 gref = gntdev_find_grefs(priv_user, index, 1); in gntdev_set_unmap_notify()
910 if (gref) { in gntdev_set_unmap_notify()
911 if (gref->notify == NULL) in gntdev_set_unmap_notify()
912 gref->notify = malloc(sizeof(*arg), M_GNTDEV, in gntdev_set_unmap_notify()
914 return (copy_notify_helper(gref->notify, arg)); in gntdev_set_unmap_notify()
947 struct gntdev_gref *gref, *gref_tmp; in per_user_data_dtor() local
957 RB_FOREACH_SAFE(gref, gref_tree_head, &priv_user->gref_tree, gref_tmp) { in per_user_data_dtor()
958 RB_REMOVE(gref_tree_head, &priv_user->gref_tree, gref); in per_user_data_dtor()
959 STAILQ_INSERT_TAIL(&cleanup_data.to_kill_grefs, gref, in per_user_data_dtor()
1062 struct gntdev_gref *gref; in mmap_gref() local
1071 for (gref = gref_start; gref != NULL && count > 0; gref = in mmap_gref()
1072 RB_NEXT(gref_tree_head, &priv_user->gref_tree, gref)) { in mmap_gref()
1073 if (gref->page->object) in mmap_gref()
1076 vm_page_insert(gref->page, mem_obj, in mmap_gref()
1077 OFF_TO_IDX(gref->file_index)); in mmap_gref()