static int ipmi_do_hw_op(IPMIInterface *s, enum ipmi_op op, int checkonly) { switch (op) { case IPMI_RESET_CHASSIS: if (checkonly) { return 0; } qemu_system_reset_request(SHUTDOWN_CAUSE_GUEST_RESET); return 0; case IPMI_POWEROFF_CHASSIS: if (checkonly) { return 0; } qemu_system_shutdown_request(SHUTDOWN_CAUSE_GUEST_SHUTDOWN); return 0; case IPMI_SEND_NMI: if (checkonly) { return 0; } qmp_inject_nmi(NULL); return 0; case IPMI_SHUTDOWN_VIA_ACPI_OVERTEMP: if (checkonly) { return 0; } qemu_system_powerdown_request(); return 0; case IPMI_POWERCYCLE_CHASSIS: case IPMI_PULSE_DIAG_IRQ: case IPMI_POWERON_CHASSIS: default: return IPMI_CC_COMMAND_NOT_SUPPORTED; } }
void qmp_system_powerdown(Error **erp) { qemu_system_powerdown_request(); }