GNU Linux-libre 5.4.274-gnu1
[releases.git] / arch / arm / include / asm / kvm_mmio.h
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 __ARM_KVM_MMIO_H__
8 #define __ARM_KVM_MMIO_H__
9
10 #include <linux/kvm_host.h>
11 #include <asm/kvm_asm.h>
12 #include <asm/kvm_arm.h>
13
14 struct kvm_decode {
15         unsigned long rt;
16         bool sign_extend;
17         /* Not used on 32-bit arm */
18         bool sixty_four;
19 };
20
21 void kvm_mmio_write_buf(void *buf, unsigned int len, unsigned long data);
22 unsigned long kvm_mmio_read_buf(const void *buf, unsigned int len);
23
24 int kvm_handle_mmio_return(struct kvm_vcpu *vcpu, struct kvm_run *run);
25 int io_mem_abort(struct kvm_vcpu *vcpu, struct kvm_run *run,
26                  phys_addr_t fault_ipa);
27
28 #endif  /* __ARM_KVM_MMIO_H__ */