/* SPDX-License-Identifier: MIT */12#ifndef __XEN_PUBLIC_HVM_HVM_OP_H__3#define __XEN_PUBLIC_HVM_HVM_OP_H__45#include <xen/interface/xen.h>67/* Get/set subcommands: the second argument of the hypercall is a8* pointer to a xen_hvm_param struct. */9#define HVMOP_set_param 010#define HVMOP_get_param 111struct xen_hvm_param {12domid_t domid; /* IN */13uint32_t index; /* IN */14uint64_t value; /* IN/OUT */15};16DEFINE_GUEST_HANDLE_STRUCT(xen_hvm_param);1718/* Hint from PV drivers for pagetable destruction. */19#define HVMOP_pagetable_dying 920struct xen_hvm_pagetable_dying {21/* Domain with a pagetable about to be destroyed. */22domid_t domid;23/* guest physical address of the toplevel pagetable dying */24aligned_u64 gpa;25};26typedef struct xen_hvm_pagetable_dying xen_hvm_pagetable_dying_t;27DEFINE_GUEST_HANDLE_STRUCT(xen_hvm_pagetable_dying_t);2829enum hvmmem_type_t {30HVMMEM_ram_rw, /* Normal read/write guest RAM */31HVMMEM_ram_ro, /* Read-only; writes are discarded */32HVMMEM_mmio_dm, /* Reads and write go to the device model */33};3435#define HVMOP_get_mem_type 1536/* Return hvmmem_type_t for the specified pfn. */37struct xen_hvm_get_mem_type {38/* Domain to be queried. */39domid_t domid;40/* OUT variable. */41uint16_t mem_type;42uint16_t pad[2]; /* align next field on 8-byte boundary */43/* IN variable. */44uint64_t pfn;45};46DEFINE_GUEST_HANDLE_STRUCT(xen_hvm_get_mem_type);4748#if defined(__i386__) || defined(__x86_64__)4950/*51* HVMOP_set_evtchn_upcall_vector: Set a <vector> that should be used for event52* channel upcalls on the specified <vcpu>. If set,53* this vector will be used in preference to the54* domain global callback via (see55* HVM_PARAM_CALLBACK_IRQ).56*/57#define HVMOP_set_evtchn_upcall_vector 2358struct xen_hvm_evtchn_upcall_vector {59uint32_t vcpu;60uint8_t vector;61};62typedef struct xen_hvm_evtchn_upcall_vector xen_hvm_evtchn_upcall_vector_t;63DEFINE_GUEST_HANDLE_STRUCT(xen_hvm_evtchn_upcall_vector_t);6465#endif /* defined(__i386__) || defined(__x86_64__) */6667#endif /* __XEN_PUBLIC_HVM_HVM_OP_H__ */686970