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);
152 int ref, rc = 0; in get_free_entries() local
163 ref = head = gnttab_free_head; in get_free_entries()
172 return ref; in get_free_entries()
201 static void put_free_entry(grant_ref_t ref) in put_free_entry() argument
205 gnttab_entry(ref) = gnttab_free_head; in put_free_entry()
206 gnttab_free_head = ref; in put_free_entry()
223 static void gnttab_update_entry_v1(grant_ref_t ref, domid_t domid, in gnttab_update_entry_v1() argument
226 gnttab_shared.v1[ref].domid = domid; in gnttab_update_entry_v1()
227 gnttab_shared.v1[ref].frame = frame; in gnttab_update_entry_v1()
229 gnttab_shared.v1[ref].flags = flags; in gnttab_update_entry_v1()
235 void gnttab_grant_foreign_access_ref(grant_ref_t ref, domid_t domid, in gnttab_grant_foreign_access_ref() argument
238 gnttab_interface->update_entry(ref, domid, frame, in gnttab_grant_foreign_access_ref()
246 int ref; in gnttab_grant_foreign_access() local
248 ref = get_free_entries(1); in gnttab_grant_foreign_access()
249 if (unlikely(ref < 0)) in gnttab_grant_foreign_access()
252 gnttab_grant_foreign_access_ref(ref, domid, frame, readonly); in gnttab_grant_foreign_access()
254 return ref; in gnttab_grant_foreign_access()
258 static int gnttab_query_foreign_access_v1(grant_ref_t ref) in gnttab_query_foreign_access_v1() argument
260 return gnttab_shared.v1[ref].flags & (GTF_reading|GTF_writing); in gnttab_query_foreign_access_v1()
263 int gnttab_query_foreign_access(grant_ref_t ref) in gnttab_query_foreign_access() argument
265 return gnttab_interface->query_foreign_access(ref); in gnttab_query_foreign_access()
269 static int gnttab_end_foreign_access_ref_v1(grant_ref_t ref, int readonly) in gnttab_end_foreign_access_ref_v1() argument
274 pflags = &gnttab_shared.v1[ref].flags; in gnttab_end_foreign_access_ref_v1()
285 static inline int _gnttab_end_foreign_access_ref(grant_ref_t ref, int readonly) in _gnttab_end_foreign_access_ref() argument
287 return gnttab_interface->end_foreign_access_ref(ref, readonly); in _gnttab_end_foreign_access_ref()
290 int gnttab_end_foreign_access_ref(grant_ref_t ref, int readonly) in gnttab_end_foreign_access_ref() argument
292 if (_gnttab_end_foreign_access_ref(ref, readonly)) in gnttab_end_foreign_access_ref()
294 pr_warn("WARNING: g.e. %#x still in use!\n", ref); in gnttab_end_foreign_access_ref()
301 grant_ref_t ref; member
326 if (_gnttab_end_foreign_access_ref(entry->ref, entry->ro)) { in gnttab_handle_deferred()
327 put_free_entry(entry->ref); in gnttab_handle_deferred()
330 entry->ref, page_to_pfn(entry->page)); in gnttab_handle_deferred()
333 pr_info("freeing g.e. %#x\n", entry->ref); in gnttab_handle_deferred()
338 pr_info("g.e. %#x still pending\n", entry->ref); in gnttab_handle_deferred()
355 static void gnttab_add_deferred(grant_ref_t ref, bool readonly, in gnttab_add_deferred() argument
364 entry->ref = ref; in gnttab_add_deferred()
378 what, ref, page ? page_to_pfn(page) : -1); in gnttab_add_deferred()
381 void gnttab_end_foreign_access(grant_ref_t ref, int readonly, in gnttab_end_foreign_access() argument
384 if (gnttab_end_foreign_access_ref(ref, readonly)) { in gnttab_end_foreign_access()
385 put_free_entry(ref); in gnttab_end_foreign_access()
389 gnttab_add_deferred(ref, readonly, in gnttab_end_foreign_access()
396 int ref; in gnttab_grant_foreign_transfer() local
398 ref = get_free_entries(1); in gnttab_grant_foreign_transfer()
399 if (unlikely(ref < 0)) in gnttab_grant_foreign_transfer()
401 gnttab_grant_foreign_transfer_ref(ref, domid, pfn); in gnttab_grant_foreign_transfer()
403 return ref; in gnttab_grant_foreign_transfer()
407 void gnttab_grant_foreign_transfer_ref(grant_ref_t ref, domid_t domid, in gnttab_grant_foreign_transfer_ref() argument
410 gnttab_interface->update_entry(ref, domid, pfn, GTF_accept_transfer); in gnttab_grant_foreign_transfer_ref()
414 static unsigned long gnttab_end_foreign_transfer_ref_v1(grant_ref_t ref) in gnttab_end_foreign_transfer_ref_v1() argument
420 pflags = &gnttab_shared.v1[ref].flags; in gnttab_end_foreign_transfer_ref_v1()
439 frame = gnttab_shared.v1[ref].frame; in gnttab_end_foreign_transfer_ref_v1()
445 unsigned long gnttab_end_foreign_transfer_ref(grant_ref_t ref) in gnttab_end_foreign_transfer_ref() argument
447 return gnttab_interface->end_foreign_transfer_ref(ref); in gnttab_end_foreign_transfer_ref()
451 unsigned long gnttab_end_foreign_transfer(grant_ref_t ref) in gnttab_end_foreign_transfer() argument
453 unsigned long frame = gnttab_end_foreign_transfer_ref(ref); in gnttab_end_foreign_transfer()
454 put_free_entry(ref); in gnttab_end_foreign_transfer()
459 void gnttab_free_grant_reference(grant_ref_t ref) in gnttab_free_grant_reference() argument
461 put_free_entry(ref); in gnttab_free_grant_reference()
467 grant_ref_t ref; in gnttab_free_grant_references() local
473 ref = head; in gnttab_free_grant_references()
474 while (gnttab_entry(ref) != GNTTAB_LIST_END) { in gnttab_free_grant_references()
475 ref = gnttab_entry(ref); in gnttab_free_grant_references()
478 gnttab_entry(ref) = gnttab_free_head; in gnttab_free_grant_references()
849 foreign->gref = map_ops[i].ref; in gnttab_map_refs()