/* SPDX-License-Identifier: MIT */12#ifndef __XEN_PUBLIC_HVM_PARAMS_H__3#define __XEN_PUBLIC_HVM_PARAMS_H__45#include <xen/interface/hvm/hvm_op.h>67/*8* Parameter space for HVMOP_{set,get}_param.9*/1011#define HVM_PARAM_CALLBACK_IRQ 012/*13* How should CPU0 event-channel notifications be delivered?14*15* If val == 0 then CPU0 event-channel notifications are not delivered.16* If val != 0, val[63:56] encodes the type, as follows:17*/1819#define HVM_PARAM_CALLBACK_TYPE_GSI 020/*21* val[55:0] is a delivery GSI. GSI 0 cannot be used, as it aliases val == 0,22* and disables all notifications.23*/2425#define HVM_PARAM_CALLBACK_TYPE_PCI_INTX 126/*27* val[55:0] is a delivery PCI INTx line:28* Domain = val[47:32], Bus = val[31:16] DevFn = val[15:8], IntX = val[1:0]29*/3031#if defined(__i386__) || defined(__x86_64__)32#define HVM_PARAM_CALLBACK_TYPE_VECTOR 233/*34* val[7:0] is a vector number. Check for XENFEAT_hvm_callback_vector to know35* if this delivery method is available.36*/37#elif defined(__arm__) || defined(__aarch64__)38#define HVM_PARAM_CALLBACK_TYPE_PPI 239/*40* val[55:16] needs to be zero.41* val[15:8] is interrupt flag of the PPI used by event-channel:42* bit 8: the PPI is edge(1) or level(0) triggered43* bit 9: the PPI is active low(1) or high(0)44* val[7:0] is a PPI number used by event-channel.45* This is only used by ARM/ARM64 and masking/eoi the interrupt associated to46* the notification is handled by the interrupt controller.47*/48#endif4950#define HVM_PARAM_STORE_PFN 151#define HVM_PARAM_STORE_EVTCHN 25253#define HVM_PARAM_PAE_ENABLED 45455#define HVM_PARAM_IOREQ_PFN 55657#define HVM_PARAM_BUFIOREQ_PFN 65859/*60* Set mode for virtual timers (currently x86 only):61* delay_for_missed_ticks (default):62* Do not advance a vcpu's time beyond the correct delivery time for63* interrupts that have been missed due to preemption. Deliver missed64* interrupts when the vcpu is rescheduled and advance the vcpu's virtual65* time stepwise for each one.66* no_delay_for_missed_ticks:67* As above, missed interrupts are delivered, but guest time always tracks68* wallclock (i.e., real) time while doing so.69* no_missed_ticks_pending:70* No missed interrupts are held pending. Instead, to ensure ticks are71* delivered at some non-zero rate, if we detect missed ticks then the72* internal tick alarm is not disabled if the VCPU is preempted during the73* next tick period.74* one_missed_tick_pending:75* Missed interrupts are collapsed together and delivered as one 'late tick'.76* Guest time always tracks wallclock (i.e., real) time.77*/78#define HVM_PARAM_TIMER_MODE 1079#define HVMPTM_delay_for_missed_ticks 080#define HVMPTM_no_delay_for_missed_ticks 181#define HVMPTM_no_missed_ticks_pending 282#define HVMPTM_one_missed_tick_pending 38384/* Boolean: Enable virtual HPET (high-precision event timer)? (x86-only) */85#define HVM_PARAM_HPET_ENABLED 118687/* Identity-map page directory used by Intel EPT when CR0.PG=0. */88#define HVM_PARAM_IDENT_PT 128990/* Device Model domain, defaults to 0. */91#define HVM_PARAM_DM_DOMAIN 139293/* ACPI S state: currently support S0 and S3 on x86. */94#define HVM_PARAM_ACPI_S_STATE 149596/* TSS used on Intel when CR0.PE=0. */97#define HVM_PARAM_VM86_TSS 159899/* Boolean: Enable aligning all periodic vpts to reduce interrupts */100#define HVM_PARAM_VPT_ALIGN 16101102/* Console debug shared memory ring and event channel */103#define HVM_PARAM_CONSOLE_PFN 17104#define HVM_PARAM_CONSOLE_EVTCHN 18105106#define HVM_NR_PARAMS 19107108#endif /* __XEN_PUBLIC_HVM_PARAMS_H__ */109110111