
#include <asm/io.h>
#include <asm/reboot.h>
#include <asm/cacheflush.h>
#include <asm/qemu.h>

static void qemu_machine_restart(char *command)
{
	volatile unsigned int *reg = (unsigned int *)QEMU_RESTART_REG;

	set_c0_status(ST0_BEV | ST0_ERL);
	change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
	flush_cache_all();
	write_c0_wired(0);
	*reg = 42;
	while (1)
		cpu_wait();
}

static void qemu_machine_halt(void)
{
	volatile unsigned int *reg = (unsigned int *)QEMU_HALT_REG;

	*reg = 42;
	while (1)
		cpu_wait();
}

void qemu_reboot_setup(void)
{
	_machine_restart = qemu_machine_restart;
	_machine_halt = qemu_machine_halt;
}
