brintos

brintos / linux-shallow public Read only

0
0
Text · 2.2 KiB · 03134bf Raw
69 lines · c
1/* SPDX-License-Identifier: MIT */2 3#ifndef __XEN_PUBLIC_HVM_HVM_OP_H__4#define __XEN_PUBLIC_HVM_HVM_OP_H__5 6#include <xen/interface/xen.h>7 8/* Get/set subcommands: the second argument of the hypercall is a9 * pointer to a xen_hvm_param struct. */10#define HVMOP_set_param           011#define HVMOP_get_param           112struct xen_hvm_param {13    domid_t  domid;    /* IN */14    uint32_t index;    /* IN */15    uint64_t value;    /* IN/OUT */16};17DEFINE_GUEST_HANDLE_STRUCT(xen_hvm_param);18 19/* Hint from PV drivers for pagetable destruction. */20#define HVMOP_pagetable_dying       921struct xen_hvm_pagetable_dying {22    /* Domain with a pagetable about to be destroyed. */23    domid_t  domid;24    /* guest physical address of the toplevel pagetable dying */25    aligned_u64 gpa;26};27typedef struct xen_hvm_pagetable_dying xen_hvm_pagetable_dying_t;28DEFINE_GUEST_HANDLE_STRUCT(xen_hvm_pagetable_dying_t);29 30enum hvmmem_type_t {31    HVMMEM_ram_rw,             /* Normal read/write guest RAM */32    HVMMEM_ram_ro,             /* Read-only; writes are discarded */33    HVMMEM_mmio_dm,            /* Reads and write go to the device model */34};35 36#define HVMOP_get_mem_type    1537/* Return hvmmem_type_t for the specified pfn. */38struct xen_hvm_get_mem_type {39    /* Domain to be queried. */40    domid_t domid;41    /* OUT variable. */42    uint16_t mem_type;43    uint16_t pad[2]; /* align next field on 8-byte boundary */44    /* IN variable. */45    uint64_t pfn;46};47DEFINE_GUEST_HANDLE_STRUCT(xen_hvm_get_mem_type);48 49#if defined(__i386__) || defined(__x86_64__)50 51/*52 * HVMOP_set_evtchn_upcall_vector: Set a <vector> that should be used for event53 *                                 channel upcalls on the specified <vcpu>. If set,54 *                                 this vector will be used in preference to the55 *                                 domain global callback via (see56 *                                 HVM_PARAM_CALLBACK_IRQ).57 */58#define HVMOP_set_evtchn_upcall_vector 2359struct xen_hvm_evtchn_upcall_vector {60    uint32_t vcpu;61    uint8_t vector;62};63typedef struct xen_hvm_evtchn_upcall_vector xen_hvm_evtchn_upcall_vector_t;64DEFINE_GUEST_HANDLE_STRUCT(xen_hvm_evtchn_upcall_vector_t);65 66#endif /* defined(__i386__) || defined(__x86_64__) */67 68#endif /* __XEN_PUBLIC_HVM_HVM_OP_H__ */69