37#ifndef __ASM_GNTTAB_H__
38#define __ASM_GNTTAB_H__
40#include <xen/xen-os.h>
41#include <xen/hypervisor.h>
42#include <xen/features.h>
44#include <contrib/xen/grant_table.h>
46#define GNTTAB_LIST_END GRANT_REF_INVALID
59int gnttab_grant_foreign_access(domid_t domid,
unsigned long frame,
60 int flags, grant_ref_t *result);
67int gnttab_end_foreign_access_ref(grant_ref_t ref);
75void gnttab_end_foreign_access(grant_ref_t ref,
void *page);
82void gnttab_end_foreign_access_references(u_int count, grant_ref_t *refs);
84int gnttab_grant_foreign_transfer(domid_t domid,
unsigned long pfn, grant_ref_t *result);
86unsigned long gnttab_end_foreign_transfer_ref(grant_ref_t ref);
87unsigned long gnttab_end_foreign_transfer(grant_ref_t ref);
89int gnttab_query_foreign_access(grant_ref_t ref);
94int gnttab_alloc_grant_references(uint16_t count, grant_ref_t *pprivate_head);
96void gnttab_free_grant_reference(grant_ref_t ref);
98void gnttab_free_grant_references(grant_ref_t head);
100int gnttab_empty_grant_references(
const grant_ref_t *pprivate_head);
102int gnttab_claim_grant_reference(grant_ref_t *pprivate_head);
104void gnttab_release_grant_reference(grant_ref_t *private_head,
105 grant_ref_t release);
108 void (*fn)(
void *),
void *arg, uint16_t count);
111void gnttab_grant_foreign_access_ref(grant_ref_t ref, domid_t domid,
112 unsigned long frame,
int flags);
114void gnttab_grant_foreign_transfer_ref(grant_ref_t, domid_t domid,
117int gnttab_suspend(
void);
118int gnttab_resume(device_t);