~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm64/include/asm/kvm_mmio.h

Version: ~ [ linux-5.12 ] ~ [ linux-5.11.16 ] ~ [ linux-5.10.32 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.114 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.188 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.231 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.267 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.267 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.18.140 ] ~ [ linux-3.16.85 ] ~ [ linux-3.14.79 ] ~ [ linux-3.12.74 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * Copyright (C) 2012 - Virtual Open Systems and Columbia University
  3  * Author: Christoffer Dall <c.dall@virtualopensystems.com>
  4  *
  5  * This program is free software; you can redistribute it and/or modify
  6  * it under the terms of the GNU General Public License, version 2, as
  7  * published by the Free Software Foundation.
  8  *
  9  * This program is distributed in the hope that it will be useful,
 10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 12  * GNU General Public License for more details.
 13  *
 14  * You should have received a copy of the GNU General Public License
 15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 16  */
 17 
 18 #ifndef __ARM64_KVM_MMIO_H__
 19 #define __ARM64_KVM_MMIO_H__
 20 
 21 #include <linux/kvm_host.h>
 22 #include <asm/kvm_asm.h>
 23 #include <asm/kvm_arm.h>
 24 
 25 /*
 26  * This is annoying. The mmio code requires this, even if we don't
 27  * need any decoding. To be fixed.
 28  */
 29 struct kvm_decode {
 30         unsigned long rt;
 31         bool sign_extend;
 32 };
 33 
 34 /*
 35  * The in-kernel MMIO emulation code wants to use a copy of run->mmio,
 36  * which is an anonymous type. Use our own type instead.
 37  */
 38 struct kvm_exit_mmio {
 39         phys_addr_t     phys_addr;
 40         u8              data[8];
 41         u32             len;
 42         bool            is_write;
 43         void            *private;
 44 };
 45 
 46 static inline void kvm_prepare_mmio(struct kvm_run *run,
 47                                     struct kvm_exit_mmio *mmio)
 48 {
 49         run->mmio.phys_addr     = mmio->phys_addr;
 50         run->mmio.len           = mmio->len;
 51         run->mmio.is_write      = mmio->is_write;
 52         memcpy(run->mmio.data, mmio->data, mmio->len);
 53         run->exit_reason        = KVM_EXIT_MMIO;
 54 }
 55 
 56 int kvm_handle_mmio_return(struct kvm_vcpu *vcpu, struct kvm_run *run);
 57 int io_mem_abort(struct kvm_vcpu *vcpu, struct kvm_run *run,
 58                  phys_addr_t fault_ipa);
 59 
 60 #endif  /* __ARM64_KVM_MMIO_H__ */
 61 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

osdn.jp