Lines Matching refs:ref

118 	void (*update_entry)(grant_ref_t ref, domid_t domid,
128 int (*end_foreign_access_ref)(grant_ref_t ref, int readonly);
136 unsigned long (*end_foreign_transfer_ref)(grant_ref_t ref);
143 int (*query_foreign_access)(grant_ref_t ref);
173 int ref, rc = 0; in get_free_entries() local
184 ref = head = gnttab_free_head; in get_free_entries()
193 return ref; in get_free_entries()
222 static void put_free_entry(grant_ref_t ref) in put_free_entry() argument
226 gnttab_entry(ref) = gnttab_free_head; in put_free_entry()
227 gnttab_free_head = ref; in put_free_entry()
244 static void gnttab_update_entry_v1(grant_ref_t ref, domid_t domid, in gnttab_update_entry_v1() argument
247 gnttab_shared.v1[ref].domid = domid; in gnttab_update_entry_v1()
248 gnttab_shared.v1[ref].frame = frame; in gnttab_update_entry_v1()
250 gnttab_shared.v1[ref].flags = flags; in gnttab_update_entry_v1()
253 static void gnttab_update_entry_v2(grant_ref_t ref, domid_t domid, in gnttab_update_entry_v2() argument
256 gnttab_shared.v2[ref].hdr.domid = domid; in gnttab_update_entry_v2()
257 gnttab_shared.v2[ref].full_page.frame = frame; in gnttab_update_entry_v2()
259 gnttab_shared.v2[ref].hdr.flags = GTF_permit_access | flags; in gnttab_update_entry_v2()
265 void gnttab_grant_foreign_access_ref(grant_ref_t ref, domid_t domid, in gnttab_grant_foreign_access_ref() argument
268 gnttab_interface->update_entry(ref, domid, frame, in gnttab_grant_foreign_access_ref()
276 int ref; in gnttab_grant_foreign_access() local
278 ref = get_free_entries(1); in gnttab_grant_foreign_access()
279 if (unlikely(ref < 0)) in gnttab_grant_foreign_access()
282 gnttab_grant_foreign_access_ref(ref, domid, frame, readonly); in gnttab_grant_foreign_access()
284 return ref; in gnttab_grant_foreign_access()
288 static int gnttab_query_foreign_access_v1(grant_ref_t ref) in gnttab_query_foreign_access_v1() argument
290 return gnttab_shared.v1[ref].flags & (GTF_reading|GTF_writing); in gnttab_query_foreign_access_v1()
293 static int gnttab_query_foreign_access_v2(grant_ref_t ref) in gnttab_query_foreign_access_v2() argument
295 return grstatus[ref] & (GTF_reading|GTF_writing); in gnttab_query_foreign_access_v2()
298 int gnttab_query_foreign_access(grant_ref_t ref) in gnttab_query_foreign_access() argument
300 return gnttab_interface->query_foreign_access(ref); in gnttab_query_foreign_access()
304 static int gnttab_end_foreign_access_ref_v1(grant_ref_t ref, int readonly) in gnttab_end_foreign_access_ref_v1() argument
309 pflags = &gnttab_shared.v1[ref].flags; in gnttab_end_foreign_access_ref_v1()
320 static int gnttab_end_foreign_access_ref_v2(grant_ref_t ref, int readonly) in gnttab_end_foreign_access_ref_v2() argument
322 gnttab_shared.v2[ref].hdr.flags = 0; in gnttab_end_foreign_access_ref_v2()
324 if (grstatus[ref] & (GTF_reading|GTF_writing)) { in gnttab_end_foreign_access_ref_v2()
343 static inline int _gnttab_end_foreign_access_ref(grant_ref_t ref, int readonly) in _gnttab_end_foreign_access_ref() argument
345 return gnttab_interface->end_foreign_access_ref(ref, readonly); in _gnttab_end_foreign_access_ref()
348 int gnttab_end_foreign_access_ref(grant_ref_t ref, int readonly) in gnttab_end_foreign_access_ref() argument
350 if (_gnttab_end_foreign_access_ref(ref, readonly)) in gnttab_end_foreign_access_ref()
352 pr_warn("WARNING: g.e. %#x still in use!\n", ref); in gnttab_end_foreign_access_ref()
359 grant_ref_t ref; member
384 if (_gnttab_end_foreign_access_ref(entry->ref, entry->ro)) { in gnttab_handle_deferred()
385 put_free_entry(entry->ref); in gnttab_handle_deferred()
388 entry->ref, page_to_pfn(entry->page)); in gnttab_handle_deferred()
391 pr_info("freeing g.e. %#x\n", entry->ref); in gnttab_handle_deferred()
396 pr_info("g.e. %#x still pending\n", entry->ref); in gnttab_handle_deferred()
413 static void gnttab_add_deferred(grant_ref_t ref, bool readonly, in gnttab_add_deferred() argument
422 entry->ref = ref; in gnttab_add_deferred()
436 what, ref, page ? page_to_pfn(page) : -1); in gnttab_add_deferred()
439 void gnttab_end_foreign_access(grant_ref_t ref, int readonly, in gnttab_end_foreign_access() argument
442 if (gnttab_end_foreign_access_ref(ref, readonly)) { in gnttab_end_foreign_access()
443 put_free_entry(ref); in gnttab_end_foreign_access()
447 gnttab_add_deferred(ref, readonly, in gnttab_end_foreign_access()
454 int ref; in gnttab_grant_foreign_transfer() local
456 ref = get_free_entries(1); in gnttab_grant_foreign_transfer()
457 if (unlikely(ref < 0)) in gnttab_grant_foreign_transfer()
459 gnttab_grant_foreign_transfer_ref(ref, domid, pfn); in gnttab_grant_foreign_transfer()
461 return ref; in gnttab_grant_foreign_transfer()
465 void gnttab_grant_foreign_transfer_ref(grant_ref_t ref, domid_t domid, in gnttab_grant_foreign_transfer_ref() argument
468 gnttab_interface->update_entry(ref, domid, pfn, GTF_accept_transfer); in gnttab_grant_foreign_transfer_ref()
472 static unsigned long gnttab_end_foreign_transfer_ref_v1(grant_ref_t ref) in gnttab_end_foreign_transfer_ref_v1() argument
478 pflags = &gnttab_shared.v1[ref].flags; in gnttab_end_foreign_transfer_ref_v1()
497 frame = gnttab_shared.v1[ref].frame; in gnttab_end_foreign_transfer_ref_v1()
503 static unsigned long gnttab_end_foreign_transfer_ref_v2(grant_ref_t ref) in gnttab_end_foreign_transfer_ref_v2() argument
509 pflags = &gnttab_shared.v2[ref].hdr.flags; in gnttab_end_foreign_transfer_ref_v2()
528 frame = gnttab_shared.v2[ref].full_page.frame; in gnttab_end_foreign_transfer_ref_v2()
534 unsigned long gnttab_end_foreign_transfer_ref(grant_ref_t ref) in gnttab_end_foreign_transfer_ref() argument
536 return gnttab_interface->end_foreign_transfer_ref(ref); in gnttab_end_foreign_transfer_ref()
540 unsigned long gnttab_end_foreign_transfer(grant_ref_t ref) in gnttab_end_foreign_transfer() argument
542 unsigned long frame = gnttab_end_foreign_transfer_ref(ref); in gnttab_end_foreign_transfer()
543 put_free_entry(ref); in gnttab_end_foreign_transfer()
548 void gnttab_free_grant_reference(grant_ref_t ref) in gnttab_free_grant_reference() argument
550 put_free_entry(ref); in gnttab_free_grant_reference()
556 grant_ref_t ref; in gnttab_free_grant_references() local
562 ref = head; in gnttab_free_grant_references()
563 while (gnttab_entry(ref) != GNTTAB_LIST_END) { in gnttab_free_grant_references()
564 ref = gnttab_entry(ref); in gnttab_free_grant_references()
567 gnttab_entry(ref) = gnttab_free_head; in gnttab_free_grant_references()
1051 foreign->gref = map_ops[i].ref; in gnttab_map_refs()