blob: d598ffc210a701334baefcab190d61ae90ff1e67 [file] [log] [blame]
Andrew Scullfbc938a2018-08-20 14:09:28 +01001#pragma once
Wedson Almeida Filho3fcbcff2018-07-10 23:53:39 +01002
Andrew Scull18c78fc2018-08-20 12:57:41 +01003#include "hf/cpu.h"
4#include "hf/vm.h"
Wedson Almeida Filho3fcbcff2018-07-10 23:53:39 +01005
Wedson Almeida Filho2f94ec12018-07-26 16:00:48 +01006struct vcpu *api_switch_to_primary(size_t primary_retval,
7 enum vcpu_state secondary_state);
8
Wedson Almeida Filho3fcbcff2018-07-10 23:53:39 +01009int32_t api_vm_get_count(void);
Andrew Scull19503262018-09-20 14:48:39 +010010int32_t api_vcpu_get_count(uint32_t vm_id);
11int32_t api_vcpu_run(uint32_t vm_id, uint32_t vcpu_idx, struct vcpu **next);
Wedson Almeida Filho3fcbcff2018-07-10 23:53:39 +010012struct vcpu *api_wait_for_interrupt(void);
Andrew Scull265ada92018-07-30 15:19:01 +010013int32_t api_vm_configure(ipaddr_t send, ipaddr_t recv);
Wedson Almeida Filho2f94ec12018-07-26 16:00:48 +010014
Andrew Scull19503262018-09-20 14:48:39 +010015int32_t api_rpc_request(uint32_t vm_id, size_t size);
Wedson Almeida Filho2f94ec12018-07-26 16:00:48 +010016int32_t api_rpc_read_request(bool block, struct vcpu **next);
17int32_t api_rpc_reply(size_t size, bool ack, struct vcpu **next);
18int32_t api_rpc_ack(void);