AArch64 EL2 hypervisor for QEMU virt that boots at EL2
1

Configure Feed

Select the types of activity you want to include in your feed.

ariel / include / hv / arch.h
1.2 kB 39 lines
1#ifndef HV_ARCH_H 2#define HV_ARCH_H 3 4#include "hv/types.h" 5 6struct trap_frame; 7struct vcpu; 8 9extern char __bss_start[]; 10extern char __bss_end[]; 11extern char __image_start[]; 12extern char __image_end[]; 13extern char __vectors_el2[]; 14extern char __guest_image_start[]; 15extern char __guest_image_end[]; 16 17uint64_t arch_current_el(void); 18uint64_t arch_mpidr_el1(void); 19uint64_t arch_cntpct_el0(void); 20uint64_t arch_cntfrq_el0(void); 21uint64_t arch_vectors_base(void); 22bool arch_vectors_aligned(void); 23uint64_t arch_irq_save(void); 24void arch_irq_restore(uint64_t flags); 25void arch_dump_el2_state(void); 26void arch_el2_configure(uint64_t vttbr, uint64_t vtcr); 27void arch_enable_el2_mmu(uint64_t ttbr0, uint64_t tcr, uint64_t mair); 28void arch_install_vectors(void); 29void arch_prepare_guest_entry(struct vcpu *vcpu); 30void arch_capture_el1_sysregs(struct vcpu *vcpu); 31void arch_sync_el1_sysregs(const struct vcpu *vcpu); 32void arch_vcpu_enter(struct vcpu *vcpu); 33void arch_halt(void) __attribute__((noreturn)); 34void arch_inject_guest_undef(struct vcpu *vcpu); 35void arch_advance_guest_pc(struct vcpu *vcpu); 36void arch_tlbi_vmalle1is(void); 37void hv_main(uint64_t boot_dtb_pa); 38 39#endif