/* Lookup AccelClass from opt_name. Returns NULL if not found */ static AccelClass *accel_find(const char *opt_name) { char *class_name = g_strdup_printf(ACCEL_CLASS_NAME("%s"), opt_name); AccelClass *ac = ACCEL_CLASS(object_class_by_name(class_name)); g_free(class_name); return ac; }
return ret; } int whpx_enabled(void) { return whpx_allowed; } static void whpx_accel_class_init(ObjectClass *oc, void *data) { AccelClass *ac = ACCEL_CLASS(oc); ac->name = "WHPX"; ac->init_machine = whpx_accel_init; ac->allowed = &whpx_allowed; } static const TypeInfo whpx_accel_type = { .name = ACCEL_CLASS_NAME("whpx"), .parent = TYPE_ACCEL, .class_init = whpx_accel_class_init, }; static void whpx_type_init(void) { type_register_static(&whpx_accel_type); } type_init(whpx_type_init);
void hax_reset_vcpu_state(void *opaque) { CPUState *cpu; for (cpu = first_cpu; cpu != NULL; cpu = CPU_NEXT(cpu)) { cpu->hax_vcpu->tunnel->user_event_pending = 0; cpu->hax_vcpu->tunnel->ready_for_interrupt_injection = 0; } } static void hax_accel_class_init(ObjectClass *oc, void *data) { AccelClass *ac = ACCEL_CLASS(oc); ac->name = "HAX"; ac->init_machine = hax_accel_init; ac->allowed = &hax_allowed; } static const TypeInfo hax_accel_type = { .name = ACCEL_CLASS_NAME("hax"), .parent = TYPE_ACCEL, .class_init = hax_accel_class_init, }; static void hax_type_init(void) { type_register_static(&hax_accel_type); } type_init(hax_type_init);