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
212struct grant_entry_header {
216typedef struct grant_entry_header grant_entry_header_t;
221union 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;
269typedef 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
511struct gnttab_set_version {
515typedef struct gnttab_set_version gnttab_set_version_t;
531struct gnttab_get_status_frames {
539typedef struct gnttab_get_status_frames gnttab_get_status_frames_t;
546struct gnttab_get_version {
553typedef struct gnttab_get_version gnttab_get_version_t;
559struct gnttab_swap_grant_ref {
566typedef struct gnttab_swap_grant_ref gnttab_swap_grant_ref_t;
573struct 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)
585typedef 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", \
struct golan_inbox_hdr hdr
Message header.
unsigned long long uint64_t
if(len >=6 *4) __asm__ __volatile__("movsl" if(len >=5 *4) __asm__ __volatile__("movsl" if(len >=4 *4) __asm__ __volatile__("movsl" if(len >=3 *4) __asm__ __volatile__("movsl" if(len >=2 *4) __asm__ __volatile__("movsl" if(len >=1 *4) __asm__ __volatile__("movsl" if((len % 4) >=2) __asm__ __volatile__("movsw" if((len % 2) >=1) __asm__ __volatile__("movsb" retur dest)
u32 version
Driver version.
uint16_t offset
Offset to command line.
union @104331263140136355135267063077374276003064103115 u
struct gnttab_query_size gnttab_query_size_t
struct gnttab_copy gnttab_copy_t
struct gnttab_unmap_and_replace gnttab_unmap_and_replace_t
struct gnttab_transfer gnttab_transfer_t
struct gnttab_unmap_grant_ref gnttab_unmap_grant_ref_t
struct gnttab_setup_table gnttab_setup_table_t
struct gnttab_dump_table gnttab_dump_table_t
struct gnttab_map_grant_ref gnttab_map_grant_ref_t
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
static const char grant_ref_t ref
static uint16_t struct vmbus_xfer_pages_operations * op
#define XEN_GUEST_HANDLE(name)
#define DEFINE_XEN_GUEST_HANDLE(name)
struct gnttab_copy::gnttab_copy_ptr source
XEN_GUEST_HANDLE(ulong) frame_list
static grant_ref_t domid_t domid