Lines Matching defs:ref

218 	int ref, rc;
227 ref = head = gnttab_free_head;
234 return (ref);
238 put_free_entry(grant_ref_t ref)
240 ASSERT(VALID_GRANT_REF(ref));
243 GNTTAB_ENTRY(ref) = gnttab_free_head;
244 gnttab_free_head = ref;
257 int ref;
259 if ((ref = get_free_entries(1)) == -1)
262 ASSERT(VALID_GRANT_REF(ref));
264 shared[ref].frame = frame;
265 shared[ref].domid = domid;
267 shared[ref].flags = GTF_permit_access | (readonly ? GTF_readonly : 0);
269 return (ref);
273 gnttab_grant_foreign_access_ref(grant_ref_t ref, domid_t domid,
276 ASSERT(VALID_GRANT_REF(ref));
278 shared[ref].frame = frame;
279 shared[ref].domid = domid;
281 shared[ref].flags = GTF_permit_access | (readonly ? GTF_readonly : 0);
286 gnttab_query_foreign_access(grant_ref_t ref)
290 ASSERT(VALID_GRANT_REF(ref));
292 nflags = shared[ref].flags;
299 gnttab_end_foreign_access_ref(grant_ref_t ref, int readonly)
303 ASSERT(VALID_GRANT_REF(ref));
305 nflags = shared[ref].flags;
311 } while ((nflags = CMPXCHG(&shared[ref].flags, flags, 0)) != flags);
317 gnttab_end_foreign_access(grant_ref_t ref, int readonly, gnttab_frame_t page)
319 ASSERT(VALID_GRANT_REF(ref));
321 if (gnttab_end_foreign_access_ref(ref, readonly)) {
322 put_free_entry(ref);
333 * XXX This needs to be fixed so that the ref and page are
343 int ref;
345 if ((ref = get_free_entries(1)) == -1)
348 ASSERT(VALID_GRANT_REF(ref));
350 gnttab_grant_foreign_transfer_ref(ref, domid, pfn);
352 return (ref);
356 gnttab_grant_foreign_transfer_ref(grant_ref_t ref, domid_t domid, pfn_t pfn)
358 ASSERT(VALID_GRANT_REF(ref));
360 shared[ref].frame = pfn;
361 shared[ref].domid = domid;
363 shared[ref].flags = GTF_accept_transfer;
367 gnttab_end_foreign_transfer_ref(grant_ref_t ref)
372 ASSERT(VALID_GRANT_REF(ref));
378 while (!((flags = shared[ref].flags) & GTF_transfer_committed)) {
379 if (CMPXCHG(&shared[ref].flags, flags, 0) == flags)
386 flags = shared[ref].flags;
392 frame = shared[ref].frame;
399 gnttab_end_foreign_transfer(grant_ref_t ref)
403 ASSERT(VALID_GRANT_REF(ref));
405 frame = gnttab_end_foreign_transfer_ref(ref);
406 put_free_entry(ref);
411 gnttab_free_grant_reference(grant_ref_t ref)
413 ASSERT(VALID_GRANT_REF(ref));
415 put_free_entry(ref);
421 grant_ref_t ref;
427 ref = head;
428 while (GNTTAB_ENTRY(ref) != GNTTAB_LIST_END) {
429 ref = GNTTAB_ENTRY(ref);
432 GNTTAB_ENTRY(ref) = gnttab_free_head;