Lines Matching refs:gref

257 	struct gntdev_gref *gref, *gref_tmp, *gref_previous;  in gref_list_dtor()  local
265 STAILQ_FOREACH_SAFE(gref, &tmp_grefs, gref_next.list, gref_tmp) { in gref_list_dtor()
266 if (gref->page && gref->page->object == NULL) { in gref_list_dtor()
267 if (gref->notify) { in gref_list_dtor()
268 notify(gref->notify, gref->page); in gref_list_dtor()
270 if (gref->gref_id != GRANT_REF_INVALID) { in gref_list_dtor()
271 if (gnttab_query_foreign_access(gref->gref_id)) in gref_list_dtor()
273 if (gnttab_end_foreign_access_ref(gref->gref_id) in gref_list_dtor()
276 gnttab_free_grant_reference(gref->gref_id); in gref_list_dtor()
278 vm_page_unwire_noq(gref->page); in gref_list_dtor()
279 vm_page_free(gref->page); in gref_list_dtor()
280 gref->page = NULL; in gref_list_dtor()
282 if (gref->page == NULL) { in gref_list_dtor()
288 if (gref->notify) in gref_list_dtor()
289 free(gref->notify, M_GNTDEV); in gref_list_dtor()
290 free(gref, M_GNTDEV); in gref_list_dtor()
293 gref_previous = gref; in gref_list_dtor()
311 struct gntdev_gref find_gref, *gref, *gref_start = NULL; in gntdev_find_grefs() local
317 for (gref = gref_start; gref != NULL && count > 0; gref = in gntdev_find_grefs()
318 RB_NEXT(gref_tree_head, &priv_user->gref_tree, gref)) { in gntdev_find_grefs()
319 if (index != gref->file_index) in gntdev_find_grefs()
431 struct gntdev_gref *gref, *gref_tmp; in gntdev_dealloc_gref() local
438 gref = gntdev_find_grefs(priv_user, arg->index, arg->count); in gntdev_dealloc_gref()
439 if (gref == NULL) { in gntdev_dealloc_gref()
448 for (; gref != NULL && count > 0; gref = gref_tmp) { in gntdev_dealloc_gref()
449 gref_tmp = RB_NEXT(gref_tree_head, &priv_user->gref_tree, gref); in gntdev_dealloc_gref()
450 RB_REMOVE(gref_tree_head, &priv_user->gref_tree, gref); in gntdev_dealloc_gref()
451 STAILQ_INSERT_TAIL(&cleanup_data.to_kill_grefs, gref, in gntdev_dealloc_gref()
886 struct gntdev_gref *gref = NULL; in gntdev_set_unmap_notify() local
897 gref = gntdev_find_grefs(priv_user, index, 1); in gntdev_set_unmap_notify()
898 if (gref) { in gntdev_set_unmap_notify()
899 if (gref->notify == NULL) in gntdev_set_unmap_notify()
900 gref->notify = malloc(sizeof(*arg), M_GNTDEV, in gntdev_set_unmap_notify()
902 return (copy_notify_helper(gref->notify, arg)); in gntdev_set_unmap_notify()
935 struct gntdev_gref *gref, *gref_tmp; in per_user_data_dtor() local
945 RB_FOREACH_SAFE(gref, gref_tree_head, &priv_user->gref_tree, gref_tmp) { in per_user_data_dtor()
946 RB_REMOVE(gref_tree_head, &priv_user->gref_tree, gref); in per_user_data_dtor()
947 STAILQ_INSERT_TAIL(&cleanup_data.to_kill_grefs, gref, in per_user_data_dtor()
1050 struct gntdev_gref *gref; in mmap_gref() local
1059 for (gref = gref_start; gref != NULL && count > 0; gref = in mmap_gref()
1060 RB_NEXT(gref_tree_head, &priv_user->gref_tree, gref)) { in mmap_gref()
1061 if (gref->page->object) in mmap_gref()
1064 vm_page_insert(gref->page, mem_obj, in mmap_gref()
1065 OFF_TO_IDX(gref->file_index)); in mmap_gref()