/* Copyright (c) 2015 Google Inc.
 * Barret Rhoden <brho@cs.berkeley.edu>
 * See LICENSE for details.
 *
 * Arch-independent VMM kernel headers */

#pragma once

#include <ros/arch/vmm.h>

/* VMCALL FUNCTION NUMBERS */
#define AKAROS_VMCALL_PRINTC		0x1
#define AKAROS_VMCALL_SMPBOOT		0x2
#define AKAROS_VMCALL_GET_TSCFREQ	0x3
#define AKAROS_VMCALL_TRACE_TF		0x4
#define AKAROS_VMCALL_SHUTDOWN		0x5

#define VMM_CTL_GET_EXITS		1
#define VMM_CTL_SET_EXITS		2
#define VMM_CTL_GET_FLAGS		3
#define VMM_CTL_SET_FLAGS		4

#define VMM_CTL_EXIT_HALT		(1 << 0)
#define VMM_CTL_EXIT_PAUSE		(1 << 1)
#define VMM_CTL_EXIT_MWAIT		(1 << 2)
#define VMM_CTL_ALL_EXITS		((1 << 3) - 1)

#define VMM_CTL_FL_KERN_PRINTC		(1 << 0)
#define VMM_CTL_ALL_FLAGS		(VMM_CTL_FL_KERN_PRINTC)
