/*-1* SPDX-License-Identifier: BSD-2-Clause2*3* Copyright (c) 2024 Arm Ltd4*5* Redistribution and use in source and binary forms, with or without6* modification, are permitted provided that the following conditions7* are met:8* 1. Redistributions of source code must retain the above copyright9* notice, this list of conditions and the following disclaimer.10* 2. Redistributions in binary form must reproduce the above copyright11* notice, this list of conditions and the following disclaimer in the12* documentation and/or other materials provided with the distribution.13*14* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND15* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE16* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE17* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE18* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL19* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS20* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)21* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT22* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY23* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF24* SUCH DAMAGE.25*/2627#ifndef _VMM_VMM_HANDLERS_H_28#define _VMM_VMM_HANDLERS_H_2930#include <sys/types.h>3132struct hyp;33struct hypctx;3435void vmm_clean_s2_tlbi(void);36uint64_t vmm_enter_guest(struct hyp *, struct hypctx *);37uint64_t vmm_read_reg(uint64_t);38void vmm_s2_tlbi_range(uint64_t, vm_offset_t, vm_offset_t, bool);39void vmm_s2_tlbi_all(uint64_t);4041void vmm_vhe_clean_s2_tlbi(void);42uint64_t vmm_vhe_enter_guest(struct hyp *, struct hypctx *);43uint64_t vmm_vhe_read_reg(uint64_t);44void vmm_vhe_s2_tlbi_range(uint64_t, vm_offset_t, vm_offset_t, bool);45void vmm_vhe_s2_tlbi_all(uint64_t);4647#endif /* _VMM_VMM_HANDLERS_H_ */484950