blob: 7fd4e31a1818881d1a419c282b508dcb98edb210 [file]
/*
* Copyright 2019, Data61
* Commonwealth Scientific and Industrial Research Organisation (CSIRO)
* ABN 41 687 119 230.
*
* This software may be distributed and modified according to the terms of
* the BSD 2-Clause license. Note that NO WARRANTY is provided.
* See "LICENSE_BSD2.txt" for details.
*
* @TAG(DATA61_BSD)
*/
#pragma once
#include <simple/simple.h>
#include <vka/vka.h>
#include <vspace/vspace.h>
#include <sel4vm/guest_vm.h>
/* ID of the boot vcpu in a VM */
#define BOOT_VCPU 0
/* Initialise/Create VM */
int vm_init(vm_t *vm, vka_t *vka, simple_t *host_simple, vspace_t host_vspace,
ps_io_ops_t *io_ops, seL4_CPtr host_endpoint, const char *name);
/* Create a VCPU for a given VM */
vm_vcpu_t *vm_create_vcpu(vm_t *vm, int priority);
/* Assign a vcpu with logical target cpu to run on
* @param[in] vcpu A handle to the VCPU
* @param[in] target Logical target CPU ID
* @return -1 for error, otherwise 0 for success
*/
int vm_assign_vcpu_target(vm_vcpu_t *vcpu, int target_cpu);