KVM
|
#include <linux/kvm_host.h>
#include <linux/mm.h>
#include <nvhe/fixed_config.h>
#include <nvhe/mem_protect.h>
#include <nvhe/memory.h>
#include <nvhe/pkvm.h>
#include <nvhe/trap_handler.h>
Go to the source code of this file.
Macros | |
#define | HANDLE_OFFSET 0x1000 |
Functions | |
static void | pvm_init_traps_aa64pfr0 (struct kvm_vcpu *vcpu) |
static void | pvm_init_traps_aa64pfr1 (struct kvm_vcpu *vcpu) |
static void | pvm_init_traps_aa64dfr0 (struct kvm_vcpu *vcpu) |
static void | pvm_init_traps_aa64mmfr0 (struct kvm_vcpu *vcpu) |
static void | pvm_init_traps_aa64mmfr1 (struct kvm_vcpu *vcpu) |
static void | pvm_init_trap_regs (struct kvm_vcpu *vcpu) |
void | __pkvm_vcpu_init_traps (struct kvm_vcpu *vcpu) |
static unsigned int | vm_handle_to_idx (pkvm_handle_t handle) |
static pkvm_handle_t | idx_to_vm_handle (unsigned int idx) |
static | DEFINE_HYP_SPINLOCK (vm_table_lock) |
void | pkvm_hyp_vm_table_init (void *tbl) |
static struct pkvm_hyp_vm * | get_vm_by_handle (pkvm_handle_t handle) |
struct pkvm_hyp_vcpu * | pkvm_load_hyp_vcpu (pkvm_handle_t handle, unsigned int vcpu_idx) |
void | pkvm_put_hyp_vcpu (struct pkvm_hyp_vcpu *hyp_vcpu) |
static void | unpin_host_vcpu (struct kvm_vcpu *host_vcpu) |
static void | unpin_host_vcpus (struct pkvm_hyp_vcpu *hyp_vcpus[], unsigned int nr_vcpus) |
static void | init_pkvm_hyp_vm (struct kvm *host_kvm, struct pkvm_hyp_vm *hyp_vm, unsigned int nr_vcpus) |
static int | init_pkvm_hyp_vcpu (struct pkvm_hyp_vcpu *hyp_vcpu, struct pkvm_hyp_vm *hyp_vm, struct kvm_vcpu *host_vcpu, unsigned int vcpu_idx) |
static int | find_free_vm_table_entry (struct kvm *host_kvm) |
static pkvm_handle_t | insert_vm_table_entry (struct kvm *host_kvm, struct pkvm_hyp_vm *hyp_vm) |
static void | remove_vm_table_entry (pkvm_handle_t handle) |
static size_t | pkvm_get_hyp_vm_size (unsigned int nr_vcpus) |
static void * | map_donated_memory_noclear (unsigned long host_va, size_t size) |
static void * | map_donated_memory (unsigned long host_va, size_t size) |
static void | __unmap_donated_memory (void *va, size_t size) |
static void | unmap_donated_memory (void *va, size_t size) |
static void | unmap_donated_memory_noclear (void *va, size_t size) |
int | __pkvm_init_vm (struct kvm *host_kvm, unsigned long vm_hva, unsigned long pgd_hva) |
int | __pkvm_init_vcpu (pkvm_handle_t handle, struct kvm_vcpu *host_vcpu, unsigned long vcpu_hva) |
static void | teardown_donated_memory (struct kvm_hyp_memcache *mc, void *addr, size_t size) |
int | __pkvm_teardown_vm (pkvm_handle_t handle) |
Variables | |
unsigned long | __icache_flags |
unsigned int | kvm_arm_vmid_bits |
static struct pkvm_hyp_vm ** | vm_table |
int __pkvm_init_vcpu | ( | pkvm_handle_t | handle, |
struct kvm_vcpu * | host_vcpu, | ||
unsigned long | vcpu_hva | ||
) |
Definition at line 539 of file pkvm.c.
int __pkvm_init_vm | ( | struct kvm * | host_kvm, |
unsigned long | vm_hva, | ||
unsigned long | pgd_hva | ||
) |
Definition at line 470 of file pkvm.c.
int __pkvm_teardown_vm | ( | pkvm_handle_t | handle | ) |
Definition at line 592 of file pkvm.c.
void __pkvm_vcpu_init_traps | ( | struct kvm_vcpu * | vcpu | ) |
Definition at line 205 of file pkvm.c.
|
static |
Definition at line 431 of file pkvm.c.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 360 of file pkvm.c.
|
static |
|
static |
Definition at line 407 of file pkvm.c.
|
static |
void pkvm_hyp_vm_table_init | ( | void * | tbl | ) |
struct pkvm_hyp_vcpu* pkvm_load_hyp_vcpu | ( | pkvm_handle_t | handle, |
unsigned int | vcpu_idx | ||
) |
void pkvm_put_hyp_vcpu | ( | struct pkvm_hyp_vcpu * | hyp_vcpu | ) |
|
static |
|
static |
|
static |
|
static |
|
static |
Definition at line 24 of file pkvm.c.
|
static |
|
static |
|
static |
Definition at line 581 of file pkvm.c.
|
static |
Definition at line 437 of file pkvm.c.
|
static |
|
static |
|
static |
|
static |
|
static |