Lines Matching refs:ref

117 	void (*update_entry)(grant_ref_t ref, domid_t domid,
127 int (*end_foreign_access_ref)(grant_ref_t ref, int readonly);
135 unsigned long (*end_foreign_transfer_ref)(grant_ref_t ref);
142 int (*query_foreign_access)(grant_ref_t ref);
172 int ref, rc = 0; in get_free_entries() local
183 ref = head = gnttab_free_head; in get_free_entries()
192 return ref; in get_free_entries()
221 static void put_free_entry(grant_ref_t ref) in put_free_entry() argument
225 gnttab_entry(ref) = gnttab_free_head; in put_free_entry()
226 gnttab_free_head = ref; in put_free_entry()
243 static void gnttab_update_entry_v1(grant_ref_t ref, domid_t domid, in gnttab_update_entry_v1() argument
246 gnttab_shared.v1[ref].domid = domid; in gnttab_update_entry_v1()
247 gnttab_shared.v1[ref].frame = frame; in gnttab_update_entry_v1()
249 gnttab_shared.v1[ref].flags = flags; in gnttab_update_entry_v1()
252 static void gnttab_update_entry_v2(grant_ref_t ref, domid_t domid, in gnttab_update_entry_v2() argument
255 gnttab_shared.v2[ref].hdr.domid = domid; in gnttab_update_entry_v2()
256 gnttab_shared.v2[ref].full_page.frame = frame; in gnttab_update_entry_v2()
258 gnttab_shared.v2[ref].hdr.flags = GTF_permit_access | flags; in gnttab_update_entry_v2()
264 void gnttab_grant_foreign_access_ref(grant_ref_t ref, domid_t domid, in gnttab_grant_foreign_access_ref() argument
267 gnttab_interface->update_entry(ref, domid, frame, in gnttab_grant_foreign_access_ref()
275 int ref; in gnttab_grant_foreign_access() local
277 ref = get_free_entries(1); in gnttab_grant_foreign_access()
278 if (unlikely(ref < 0)) in gnttab_grant_foreign_access()
281 gnttab_grant_foreign_access_ref(ref, domid, frame, readonly); in gnttab_grant_foreign_access()
283 return ref; in gnttab_grant_foreign_access()
287 static int gnttab_query_foreign_access_v1(grant_ref_t ref) in gnttab_query_foreign_access_v1() argument
289 return gnttab_shared.v1[ref].flags & (GTF_reading|GTF_writing); in gnttab_query_foreign_access_v1()
292 static int gnttab_query_foreign_access_v2(grant_ref_t ref) in gnttab_query_foreign_access_v2() argument
294 return grstatus[ref] & (GTF_reading|GTF_writing); in gnttab_query_foreign_access_v2()
297 int gnttab_query_foreign_access(grant_ref_t ref) in gnttab_query_foreign_access() argument
299 return gnttab_interface->query_foreign_access(ref); in gnttab_query_foreign_access()
303 static int gnttab_end_foreign_access_ref_v1(grant_ref_t ref, int readonly) in gnttab_end_foreign_access_ref_v1() argument
308 pflags = &gnttab_shared.v1[ref].flags; in gnttab_end_foreign_access_ref_v1()
319 static int gnttab_end_foreign_access_ref_v2(grant_ref_t ref, int readonly) in gnttab_end_foreign_access_ref_v2() argument
321 gnttab_shared.v2[ref].hdr.flags = 0; in gnttab_end_foreign_access_ref_v2()
323 if (grstatus[ref] & (GTF_reading|GTF_writing)) { in gnttab_end_foreign_access_ref_v2()
342 static inline int _gnttab_end_foreign_access_ref(grant_ref_t ref, int readonly) in _gnttab_end_foreign_access_ref() argument
344 return gnttab_interface->end_foreign_access_ref(ref, readonly); in _gnttab_end_foreign_access_ref()
347 int gnttab_end_foreign_access_ref(grant_ref_t ref, int readonly) in gnttab_end_foreign_access_ref() argument
349 if (_gnttab_end_foreign_access_ref(ref, readonly)) in gnttab_end_foreign_access_ref()
351 pr_warn("WARNING: g.e. %#x still in use!\n", ref); in gnttab_end_foreign_access_ref()
358 grant_ref_t ref; member
383 if (_gnttab_end_foreign_access_ref(entry->ref, entry->ro)) { in gnttab_handle_deferred()
384 put_free_entry(entry->ref); in gnttab_handle_deferred()
387 entry->ref, page_to_pfn(entry->page)); in gnttab_handle_deferred()
390 pr_info("freeing g.e. %#x\n", entry->ref); in gnttab_handle_deferred()
395 pr_info("g.e. %#x still pending\n", entry->ref); in gnttab_handle_deferred()
412 static void gnttab_add_deferred(grant_ref_t ref, bool readonly, in gnttab_add_deferred() argument
421 entry->ref = ref; in gnttab_add_deferred()
435 what, ref, page ? page_to_pfn(page) : -1); in gnttab_add_deferred()
438 void gnttab_end_foreign_access(grant_ref_t ref, int readonly, in gnttab_end_foreign_access() argument
441 if (gnttab_end_foreign_access_ref(ref, readonly)) { in gnttab_end_foreign_access()
442 put_free_entry(ref); in gnttab_end_foreign_access()
446 gnttab_add_deferred(ref, readonly, in gnttab_end_foreign_access()
453 int ref; in gnttab_grant_foreign_transfer() local
455 ref = get_free_entries(1); in gnttab_grant_foreign_transfer()
456 if (unlikely(ref < 0)) in gnttab_grant_foreign_transfer()
458 gnttab_grant_foreign_transfer_ref(ref, domid, pfn); in gnttab_grant_foreign_transfer()
460 return ref; in gnttab_grant_foreign_transfer()
464 void gnttab_grant_foreign_transfer_ref(grant_ref_t ref, domid_t domid, in gnttab_grant_foreign_transfer_ref() argument
467 gnttab_interface->update_entry(ref, domid, pfn, GTF_accept_transfer); in gnttab_grant_foreign_transfer_ref()
471 static unsigned long gnttab_end_foreign_transfer_ref_v1(grant_ref_t ref) in gnttab_end_foreign_transfer_ref_v1() argument
477 pflags = &gnttab_shared.v1[ref].flags; in gnttab_end_foreign_transfer_ref_v1()
496 frame = gnttab_shared.v1[ref].frame; in gnttab_end_foreign_transfer_ref_v1()
502 static unsigned long gnttab_end_foreign_transfer_ref_v2(grant_ref_t ref) in gnttab_end_foreign_transfer_ref_v2() argument
508 pflags = &gnttab_shared.v2[ref].hdr.flags; in gnttab_end_foreign_transfer_ref_v2()
527 frame = gnttab_shared.v2[ref].full_page.frame; in gnttab_end_foreign_transfer_ref_v2()
533 unsigned long gnttab_end_foreign_transfer_ref(grant_ref_t ref) in gnttab_end_foreign_transfer_ref() argument
535 return gnttab_interface->end_foreign_transfer_ref(ref); in gnttab_end_foreign_transfer_ref()
539 unsigned long gnttab_end_foreign_transfer(grant_ref_t ref) in gnttab_end_foreign_transfer() argument
541 unsigned long frame = gnttab_end_foreign_transfer_ref(ref); in gnttab_end_foreign_transfer()
542 put_free_entry(ref); in gnttab_end_foreign_transfer()
547 void gnttab_free_grant_reference(grant_ref_t ref) in gnttab_free_grant_reference() argument
549 put_free_entry(ref); in gnttab_free_grant_reference()
555 grant_ref_t ref; in gnttab_free_grant_references() local
561 ref = head; in gnttab_free_grant_references()
562 while (gnttab_entry(ref) != GNTTAB_LIST_END) { in gnttab_free_grant_references()
563 ref = gnttab_entry(ref); in gnttab_free_grant_references()
566 gnttab_entry(ref) = gnttab_free_head; in gnttab_free_grant_references()
1172 foreign->gref = map_ops[i].ref; in gnttab_map_refs()