• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Copyright (C) 2012 - Virtual Open Systems and Columbia University
4  * Author: Christoffer Dall <c.dall@virtualopensystems.com>
5  */
6 
7 #ifndef __ARM64_KVM_MMIO_H__
8 #define __ARM64_KVM_MMIO_H__
9 
10 #include <linux/kvm_host.h>
11 #include <asm/kvm_arm.h>
12 
13 /*
14  * This is annoying. The mmio code requires this, even if we don't
15  * need any decoding. To be fixed.
16  */
17 struct kvm_decode {
18 	unsigned long rt;
19 	bool sign_extend;
20 };
21 
22 void kvm_mmio_write_buf(void *buf, unsigned int len, unsigned long data);
23 unsigned long kvm_mmio_read_buf(const void *buf, unsigned int len);
24 
25 int kvm_handle_mmio_return(struct kvm_vcpu *vcpu, struct kvm_run *run);
26 int io_mem_abort(struct kvm_vcpu *vcpu, struct kvm_run *run,
27 		 phys_addr_t fault_ipa);
28 
29 #endif	/* __ARM64_KVM_MMIO_H__ */
30