Wedson Almeida Filho | 987c0ff | 2018-06-20 16:34:38 +0100 | [diff] [blame] | 1 | #ifndef _VM_H |
| 2 | #define _VM_H |
| 3 | |
| 4 | #include "cpu.h" |
Wedson Almeida Filho | 84a30a0 | 2018-07-23 20:05:05 +0100 | [diff] [blame^] | 5 | #include "mm.h" |
Wedson Almeida Filho | 987c0ff | 2018-06-20 16:34:38 +0100 | [diff] [blame] | 6 | |
| 7 | struct vm { |
Wedson Almeida Filho | 84a30a0 | 2018-07-23 20:05:05 +0100 | [diff] [blame^] | 8 | struct mm_ptable ptable; |
Wedson Almeida Filho | 8700964 | 2018-07-02 10:20:07 +0100 | [diff] [blame] | 9 | uint32_t vcpu_count; |
Wedson Almeida Filho | 84a30a0 | 2018-07-23 20:05:05 +0100 | [diff] [blame^] | 10 | struct vcpu vcpus[MAX_CPUS]; |
Wedson Almeida Filho | 987c0ff | 2018-06-20 16:34:38 +0100 | [diff] [blame] | 11 | }; |
| 12 | |
Wedson Almeida Filho | 84a30a0 | 2018-07-23 20:05:05 +0100 | [diff] [blame^] | 13 | bool vm_init(struct vm *vm, uint32_t id, uint32_t vcpu_count); |
Wedson Almeida Filho | 8700964 | 2018-07-02 10:20:07 +0100 | [diff] [blame] | 14 | void vm_start_vcpu(struct vm *vm, size_t index, size_t entry, size_t arg, |
| 15 | bool is_primary); |
Wedson Almeida Filho | 84a30a0 | 2018-07-23 20:05:05 +0100 | [diff] [blame^] | 16 | void vm_set_current(struct vm *vm); |
Wedson Almeida Filho | 987c0ff | 2018-06-20 16:34:38 +0100 | [diff] [blame] | 17 | |
Andrew Scull | 4f170f5 | 2018-07-19 12:58:20 +0100 | [diff] [blame] | 18 | #endif /* _VM_H */ |