blob: 847d5b76176b092c2cd7631f873bfe0bd61a885b [file] [log] [blame]
Wedson Almeida Filho987c0ff2018-06-20 16:34:38 +01001#ifndef _VM_H
2#define _VM_H
3
4#include "cpu.h"
Wedson Almeida Filho84a30a02018-07-23 20:05:05 +01005#include "mm.h"
Wedson Almeida Filho987c0ff2018-06-20 16:34:38 +01006
7struct vm {
Wedson Almeida Filho84a30a02018-07-23 20:05:05 +01008 struct mm_ptable ptable;
Wedson Almeida Filho87009642018-07-02 10:20:07 +01009 uint32_t vcpu_count;
Wedson Almeida Filho84a30a02018-07-23 20:05:05 +010010 struct vcpu vcpus[MAX_CPUS];
Wedson Almeida Filho987c0ff2018-06-20 16:34:38 +010011};
12
Wedson Almeida Filho84a30a02018-07-23 20:05:05 +010013bool vm_init(struct vm *vm, uint32_t id, uint32_t vcpu_count);
Wedson Almeida Filho87009642018-07-02 10:20:07 +010014void vm_start_vcpu(struct vm *vm, size_t index, size_t entry, size_t arg,
15 bool is_primary);
Wedson Almeida Filho84a30a02018-07-23 20:05:05 +010016void vm_set_current(struct vm *vm);
Wedson Almeida Filho987c0ff2018-06-20 16:34:38 +010017
Andrew Scull4f170f52018-07-19 12:58:20 +010018#endif /* _VM_H */