11 #ifndef __XEN_PUBLIC_GRANT_TABLE_H__ 12 #define __XEN_PUBLIC_GRANT_TABLE_H__ 114 #if __XEN_INTERFACE_VERSION__ < 0x0003020a 115 #define grant_entry_v1 grant_entry 116 #define grant_entry_v1_t grant_entry_t 136 #define GNTTAB_NR_RESERVED_ENTRIES 8 137 #define GNTTAB_RESERVED_CONSOLE 0 138 #define GNTTAB_RESERVED_XENSTORE 1 149 #define GTF_invalid (0U<<0) 150 #define GTF_permit_access (1U<<0) 151 #define GTF_accept_transfer (2U<<0) 152 #define GTF_transitive (3U<<0) 153 #define GTF_type_mask (3U<<0) 167 #define _GTF_readonly (2) 168 #define GTF_readonly (1U<<_GTF_readonly) 169 #define _GTF_reading (3) 170 #define GTF_reading (1U<<_GTF_reading) 171 #define _GTF_writing (4) 172 #define GTF_writing (1U<<_GTF_writing) 174 #define GTF_PWT (1U<<_GTF_PWT) 176 #define GTF_PCD (1U<<_GTF_PCD) 178 #define GTF_PAT (1U<<_GTF_PAT) 179 #define _GTF_sub_page (8) 180 #define GTF_sub_page (1U<<_GTF_sub_page) 192 #define _GTF_transfer_committed (2) 193 #define GTF_transfer_committed (1U<<_GTF_transfer_committed) 194 #define _GTF_transfer_completed (3) 195 #define GTF_transfer_completed (1U<<_GTF_transfer_completed) 206 #if __XEN_INTERFACE_VERSION__ >= 0x0003020a 212 struct grant_entry_header {
216 typedef struct grant_entry_header grant_entry_header_t;
221 union grant_entry_v2 {
222 grant_entry_header_t
hdr;
234 grant_entry_header_t
hdr;
245 grant_entry_header_t
hdr;
261 grant_entry_header_t
hdr;
269 typedef union grant_entry_v2 grant_entry_v2_t;
290 #define GNTTABOP_map_grant_ref 0 291 #define GNTTABOP_unmap_grant_ref 1 292 #define GNTTABOP_setup_table 2 293 #define GNTTABOP_dump_table 3 294 #define GNTTABOP_transfer 4 295 #define GNTTABOP_copy 5 296 #define GNTTABOP_query_size 6 297 #define GNTTABOP_unmap_and_replace 7 298 #if __XEN_INTERFACE_VERSION__ >= 0x0003020a 299 #define GNTTABOP_set_version 8 300 #define GNTTABOP_get_status_frames 9 301 #define GNTTABOP_get_version 10 302 #define GNTTABOP_swap_grant_ref 11 303 #define GNTTABOP_cache_flush 12 380 #if __XEN_INTERFACE_VERSION__ < 0x00040300 441 #define _GNTCOPY_source_gref (0) 442 #define GNTCOPY_source_gref (1<<_GNTCOPY_source_gref) 443 #define _GNTCOPY_dest_gref (1) 444 #define GNTCOPY_dest_gref (1<<_GNTCOPY_dest_gref) 504 #if __XEN_INTERFACE_VERSION__ >= 0x0003020a 511 struct gnttab_set_version {
515 typedef struct gnttab_set_version gnttab_set_version_t;
531 struct gnttab_get_status_frames {
539 typedef struct gnttab_get_status_frames gnttab_get_status_frames_t;
546 struct gnttab_get_version {
553 typedef struct gnttab_get_version gnttab_get_version_t;
559 struct gnttab_swap_grant_ref {
566 typedef struct gnttab_swap_grant_ref gnttab_swap_grant_ref_t;
573 struct gnttab_cache_flush {
580 #define GNTTAB_CACHE_CLEAN (1u<<0) 581 #define GNTTAB_CACHE_INVAL (1u<<1) 582 #define GNTTAB_CACHE_SOURCE_GREF (1u<<31) 585 typedef struct gnttab_cache_flush gnttab_cache_flush_t;
594 #define _GNTMAP_device_map (0) 595 #define GNTMAP_device_map (1<<_GNTMAP_device_map) 597 #define _GNTMAP_host_map (1) 598 #define GNTMAP_host_map (1<<_GNTMAP_host_map) 600 #define _GNTMAP_readonly (2) 601 #define GNTMAP_readonly (1<<_GNTMAP_readonly) 607 #define _GNTMAP_application_map (3) 608 #define GNTMAP_application_map (1<<_GNTMAP_application_map) 615 #define _GNTMAP_contains_pte (4) 616 #define GNTMAP_contains_pte (1<<_GNTMAP_contains_pte) 622 #define _GNTMAP_guest_avail0 (16) 623 #define GNTMAP_guest_avail_mask ((uint32_t)~0 << _GNTMAP_guest_avail0) 629 #define GNTST_okay (0) 630 #define GNTST_general_error (-1) 631 #define GNTST_bad_domain (-2) 632 #define GNTST_bad_gntref (-3) 633 #define GNTST_bad_handle (-4) 634 #define GNTST_bad_virt_addr (-5) 635 #define GNTST_bad_dev_addr (-6) 636 #define GNTST_no_device_space (-7) 637 #define GNTST_permission_denied (-8) 638 #define GNTST_bad_page (-9) 639 #define GNTST_bad_copy_arg (-10) 640 #define GNTST_address_too_big (-11) 641 #define GNTST_eagain (-12) 642 #define GNTST_no_space (-13) 645 #define GNTTABOP_error_msgs { \ 648 "unrecognised domain id", \ 649 "invalid grant reference", \ 650 "invalid mapping handle", \ 651 "invalid virtual address", \ 652 "invalid device address", \ 653 "no spare translation slot in the I/O MMU", \ 654 "permission denied", \ 656 "copy arguments cross page boundary", \ 657 "page address size too large", \ 658 "operation not done; try again", \
DEFINE_XEN_GUEST_HANDLE(gnttab_map_grant_ref_t)
struct golan_inbox_hdr hdr
Message header.
unsigned long long uint64_t
XEN_GUEST_HANDLE(ulong) frame_list
union gnttab_copy::gnttab_copy_ptr::@678 u
struct gnttab_copy::gnttab_copy_ptr dest
u32 version
Driver version.
static grant_ref_t domid_t domid
static uint16_t struct vmbus_xfer_pages_operations * op
struct gnttab_copy::gnttab_copy_ptr source
static const char grant_ref_t ref
uint16_t offset
Offset to command line.
#define XEN_GUEST_HANDLE(name)