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

TOMOYO Linux Cross Reference
Linux/virt/kvm/kvm_mm.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ 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.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0-only */
  2 
  3 #ifndef __KVM_MM_H__
  4 #define __KVM_MM_H__ 1
  5 
  6 /*
  7  * Architectures can choose whether to use an rwlock or spinlock
  8  * for the mmu_lock.  These macros, for use in common code
  9  * only, avoids using #ifdefs in places that must deal with
 10  * multiple architectures.
 11  */
 12 
 13 #ifdef KVM_HAVE_MMU_RWLOCK
 14 #define KVM_MMU_LOCK_INIT(kvm)          rwlock_init(&(kvm)->mmu_lock)
 15 #define KVM_MMU_LOCK(kvm)               write_lock(&(kvm)->mmu_lock)
 16 #define KVM_MMU_UNLOCK(kvm)             write_unlock(&(kvm)->mmu_lock)
 17 #else
 18 #define KVM_MMU_LOCK_INIT(kvm)          spin_lock_init(&(kvm)->mmu_lock)
 19 #define KVM_MMU_LOCK(kvm)               spin_lock(&(kvm)->mmu_lock)
 20 #define KVM_MMU_UNLOCK(kvm)             spin_unlock(&(kvm)->mmu_lock)
 21 #endif /* KVM_HAVE_MMU_RWLOCK */
 22 
 23 kvm_pfn_t hva_to_pfn(unsigned long addr, bool atomic, bool interruptible,
 24                      bool *async, bool write_fault, bool *writable);
 25 
 26 #ifdef CONFIG_HAVE_KVM_PFNCACHE
 27 void gfn_to_pfn_cache_invalidate_start(struct kvm *kvm,
 28                                        unsigned long start,
 29                                        unsigned long end);
 30 #else
 31 static inline void gfn_to_pfn_cache_invalidate_start(struct kvm *kvm,
 32                                                      unsigned long start,
 33                                                      unsigned long end)
 34 {
 35 }
 36 #endif /* HAVE_KVM_PFNCACHE */
 37 
 38 #ifdef CONFIG_KVM_PRIVATE_MEM
 39 void kvm_gmem_init(struct module *module);
 40 int kvm_gmem_create(struct kvm *kvm, struct kvm_create_guest_memfd *args);
 41 int kvm_gmem_bind(struct kvm *kvm, struct kvm_memory_slot *slot,
 42                   unsigned int fd, loff_t offset);
 43 void kvm_gmem_unbind(struct kvm_memory_slot *slot);
 44 #else
 45 static inline void kvm_gmem_init(struct module *module)
 46 {
 47 
 48 }
 49 
 50 static inline int kvm_gmem_bind(struct kvm *kvm,
 51                                          struct kvm_memory_slot *slot,
 52                                          unsigned int fd, loff_t offset)
 53 {
 54         WARN_ON_ONCE(1);
 55         return -EIO;
 56 }
 57 
 58 static inline void kvm_gmem_unbind(struct kvm_memory_slot *slot)
 59 {
 60         WARN_ON_ONCE(1);
 61 }
 62 #endif /* CONFIG_KVM_PRIVATE_MEM */
 63 
 64 #endif /* __KVM_MM_H__ */
 65 

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

kernel.org | git.kernel.org | LWN.net | Project Home | 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.

sflogo.php