Lines Matching refs:ref

98 	void (*update_entry)(grant_ref_t ref, domid_t domid,
108 int (*end_foreign_access_ref)(grant_ref_t ref, int readonly);
116 unsigned long (*end_foreign_transfer_ref)(grant_ref_t ref);
123 int (*query_foreign_access)(grant_ref_t ref);
153 int ref, rc = 0; in get_free_entries() local
164 ref = head = gnttab_free_head; in get_free_entries()
173 return ref; in get_free_entries()
202 static void put_free_entry(grant_ref_t ref) in put_free_entry() argument
206 gnttab_entry(ref) = gnttab_free_head; in put_free_entry()
207 gnttab_free_head = ref; in put_free_entry()
224 static void gnttab_update_entry_v1(grant_ref_t ref, domid_t domid, in gnttab_update_entry_v1() argument
227 gnttab_shared.v1[ref].domid = domid; in gnttab_update_entry_v1()
228 gnttab_shared.v1[ref].frame = frame; in gnttab_update_entry_v1()
230 gnttab_shared.v1[ref].flags = flags; in gnttab_update_entry_v1()
236 void gnttab_grant_foreign_access_ref(grant_ref_t ref, domid_t domid, in gnttab_grant_foreign_access_ref() argument
239 gnttab_interface->update_entry(ref, domid, frame, in gnttab_grant_foreign_access_ref()
247 int ref; in gnttab_grant_foreign_access() local
249 ref = get_free_entries(1); in gnttab_grant_foreign_access()
250 if (unlikely(ref < 0)) in gnttab_grant_foreign_access()
253 gnttab_grant_foreign_access_ref(ref, domid, frame, readonly); in gnttab_grant_foreign_access()
255 return ref; in gnttab_grant_foreign_access()
259 static int gnttab_query_foreign_access_v1(grant_ref_t ref) in gnttab_query_foreign_access_v1() argument
261 return gnttab_shared.v1[ref].flags & (GTF_reading|GTF_writing); in gnttab_query_foreign_access_v1()
264 int gnttab_query_foreign_access(grant_ref_t ref) in gnttab_query_foreign_access() argument
266 return gnttab_interface->query_foreign_access(ref); in gnttab_query_foreign_access()
270 static int gnttab_end_foreign_access_ref_v1(grant_ref_t ref, int readonly) in gnttab_end_foreign_access_ref_v1() argument
275 pflags = &gnttab_shared.v1[ref].flags; in gnttab_end_foreign_access_ref_v1()
286 static inline int _gnttab_end_foreign_access_ref(grant_ref_t ref, int readonly) in _gnttab_end_foreign_access_ref() argument
288 return gnttab_interface->end_foreign_access_ref(ref, readonly); in _gnttab_end_foreign_access_ref()
291 int gnttab_end_foreign_access_ref(grant_ref_t ref, int readonly) in gnttab_end_foreign_access_ref() argument
293 if (_gnttab_end_foreign_access_ref(ref, readonly)) in gnttab_end_foreign_access_ref()
295 pr_warn("WARNING: g.e. %#x still in use!\n", ref); in gnttab_end_foreign_access_ref()
302 grant_ref_t ref; member
327 if (_gnttab_end_foreign_access_ref(entry->ref, entry->ro)) { in gnttab_handle_deferred()
328 put_free_entry(entry->ref); in gnttab_handle_deferred()
331 entry->ref, page_to_pfn(entry->page)); in gnttab_handle_deferred()
334 pr_info("freeing g.e. %#x\n", entry->ref); in gnttab_handle_deferred()
339 pr_info("g.e. %#x still pending\n", entry->ref); in gnttab_handle_deferred()
356 static void gnttab_add_deferred(grant_ref_t ref, bool readonly, in gnttab_add_deferred() argument
365 entry->ref = ref; in gnttab_add_deferred()
379 what, ref, page ? page_to_pfn(page) : -1); in gnttab_add_deferred()
382 void gnttab_end_foreign_access(grant_ref_t ref, int readonly, in gnttab_end_foreign_access() argument
385 if (gnttab_end_foreign_access_ref(ref, readonly)) { in gnttab_end_foreign_access()
386 put_free_entry(ref); in gnttab_end_foreign_access()
390 gnttab_add_deferred(ref, readonly, in gnttab_end_foreign_access()
397 int ref; in gnttab_grant_foreign_transfer() local
399 ref = get_free_entries(1); in gnttab_grant_foreign_transfer()
400 if (unlikely(ref < 0)) in gnttab_grant_foreign_transfer()
402 gnttab_grant_foreign_transfer_ref(ref, domid, pfn); in gnttab_grant_foreign_transfer()
404 return ref; in gnttab_grant_foreign_transfer()
408 void gnttab_grant_foreign_transfer_ref(grant_ref_t ref, domid_t domid, in gnttab_grant_foreign_transfer_ref() argument
411 gnttab_interface->update_entry(ref, domid, pfn, GTF_accept_transfer); in gnttab_grant_foreign_transfer_ref()
415 static unsigned long gnttab_end_foreign_transfer_ref_v1(grant_ref_t ref) in gnttab_end_foreign_transfer_ref_v1() argument
421 pflags = &gnttab_shared.v1[ref].flags; in gnttab_end_foreign_transfer_ref_v1()
440 frame = gnttab_shared.v1[ref].frame; in gnttab_end_foreign_transfer_ref_v1()
446 unsigned long gnttab_end_foreign_transfer_ref(grant_ref_t ref) in gnttab_end_foreign_transfer_ref() argument
448 return gnttab_interface->end_foreign_transfer_ref(ref); in gnttab_end_foreign_transfer_ref()
452 unsigned long gnttab_end_foreign_transfer(grant_ref_t ref) in gnttab_end_foreign_transfer() argument
454 unsigned long frame = gnttab_end_foreign_transfer_ref(ref); in gnttab_end_foreign_transfer()
455 put_free_entry(ref); in gnttab_end_foreign_transfer()
460 void gnttab_free_grant_reference(grant_ref_t ref) in gnttab_free_grant_reference() argument
462 put_free_entry(ref); in gnttab_free_grant_reference()
468 grant_ref_t ref; in gnttab_free_grant_references() local
474 ref = head; in gnttab_free_grant_references()
475 while (gnttab_entry(ref) != GNTTAB_LIST_END) { in gnttab_free_grant_references()
476 ref = gnttab_entry(ref); in gnttab_free_grant_references()
479 gnttab_entry(ref) = gnttab_free_head; in gnttab_free_grant_references()
802 foreign->gref = map_ops[i].ref; in gnttab_map_refs()