|
@@ -5922,6 +5922,33 @@ static void kvm_arch_set_xen_gnttab_max_frames(Object *obj, Visitor *v,
|
|
|
s->xen_gnttab_max_frames = value;
|
|
|
}
|
|
|
|
|
|
+static void kvm_arch_get_xen_evtchn_max_pirq(Object *obj, Visitor *v,
|
|
|
+ const char *name, void *opaque,
|
|
|
+ Error **errp)
|
|
|
+{
|
|
|
+ KVMState *s = KVM_STATE(obj);
|
|
|
+ uint16_t value = s->xen_evtchn_max_pirq;
|
|
|
+
|
|
|
+ visit_type_uint16(v, name, &value, errp);
|
|
|
+}
|
|
|
+
|
|
|
+static void kvm_arch_set_xen_evtchn_max_pirq(Object *obj, Visitor *v,
|
|
|
+ const char *name, void *opaque,
|
|
|
+ Error **errp)
|
|
|
+{
|
|
|
+ KVMState *s = KVM_STATE(obj);
|
|
|
+ Error *error = NULL;
|
|
|
+ uint16_t value;
|
|
|
+
|
|
|
+ visit_type_uint16(v, name, &value, &error);
|
|
|
+ if (error) {
|
|
|
+ error_propagate(errp, error);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ s->xen_evtchn_max_pirq = value;
|
|
|
+}
|
|
|
+
|
|
|
void kvm_arch_accel_class_init(ObjectClass *oc)
|
|
|
{
|
|
|
object_class_property_add_enum(oc, "notify-vmexit", "NotifyVMexitOption",
|
|
@@ -5954,6 +5981,13 @@ void kvm_arch_accel_class_init(ObjectClass *oc)
|
|
|
NULL, NULL);
|
|
|
object_class_property_set_description(oc, "xen-gnttab-max-frames",
|
|
|
"Maximum number of grant table frames");
|
|
|
+
|
|
|
+ object_class_property_add(oc, "xen-evtchn-max-pirq", "uint16",
|
|
|
+ kvm_arch_get_xen_evtchn_max_pirq,
|
|
|
+ kvm_arch_set_xen_evtchn_max_pirq,
|
|
|
+ NULL, NULL);
|
|
|
+ object_class_property_set_description(oc, "xen-evtchn-max-pirq",
|
|
|
+ "Maximum number of Xen PIRQs");
|
|
|
}
|
|
|
|
|
|
void kvm_set_max_apic_id(uint32_t max_apic_id)
|