linux/arch
Avi Kivity c4f035c60d KVM: x86 emulator: add framework for instruction intercepts
When running in guest mode, certain instructions can be intercepted by
hardware.  This also holds for nested guests running on emulated
virtualization hardware, in particular instructions emulated by kvm
itself.

This patch adds a framework for intercepting instructions.  If an
instruction is marked for interception, and if we're running in guest
mode, a callback is called to check whether an intercept is needed or
not.  The callback is called at three points in time: immediately after
beginning execution, after checking privilge exceptions, and after
checking memory exception.  This suits the different interception points
defined for different instructions and for the various virtualization
instruction sets.

In addition, a new X86EMUL_INTERCEPT is defined, which any callback or
memory access may define, allowing the more complicated intercepts to be
implemented in existing callbacks.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
2011-05-11 07:57:00 -04:00
..
alpha alpha: Fix uninitialized value in read_persistent_clock. 2011-04-17 14:41:30 -07:00
arm Merge branch 'master' of ssh://master.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into perf/urgent 2011-05-06 08:11:28 +02:00
avr32 avr32: add ATAG_BOARDINFO 2011-04-13 15:46:59 +02:00
blackfin Blackfin: SMP: fix cache flush loop 2011-04-13 19:34:06 -04:00
cris Fix common misspellings 2011-03-31 11:26:23 -03:00
frv Fix common misspellings 2011-03-31 11:26:23 -03:00
h8300 genirq: Remove the now obsolete config options and select statements 2011-03-30 14:13:23 +02:00
ia64 Merge branch 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6 2011-04-07 11:14:49 -07:00
m32r Fix common misspellings 2011-03-31 11:26:23 -03:00
m68k m68k/mm: Set all online nodes in N_NORMAL_MEMORY 2011-04-27 17:36:00 +02:00
microblaze usb: Fix Kconfig unmet dependencies for Microblaze EHCI 2011-04-13 15:43:59 -07:00
mips MIPS: Alchemy: fix xxs1500 build error 2011-05-10 18:15:26 +01:00
mn10300 Fix common misspellings 2011-03-31 11:26:23 -03:00
parisc [PARISC] set memory ranges in N_NORMAL_MEMORY when onlined 2011-04-21 09:32:38 -05:00
powerpc hw_breakpoints, powerpc: Fix CONFIG_HAVE_HW_BREAKPOINT off-case in ptrace_set_debugreg() 2011-05-06 11:24:46 +02:00
s390 [S390] irqstats: fix counting of pfault, dasd diag and virtio irqs 2011-04-29 10:42:25 +02:00
score Fix common misspellings 2011-03-31 11:26:23 -03:00
sh sh, hw_breakpoints: Fix racy access to ptrace breakpoints 2011-04-25 17:36:12 +02:00
sparc Merge branch 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6 2011-04-07 11:14:49 -07:00
tile Fix common misspellings 2011-03-31 11:26:23 -03:00
um um: adjust current_thread_info() for newer gcc versions 2011-04-28 11:28:21 -07:00
unicore32 Merge branch 'for-linus2' of git://git.profusion.mobi/users/lucas/linux-2.6 2011-04-07 11:14:49 -07:00
x86 KVM: x86 emulator: add framework for instruction intercepts 2011-05-11 07:57:00 -04:00
xtensa xtensa: Fixup irq conversion fallout and nmi_count 2011-04-20 00:32:09 +02:00
.gitignore
Kconfig oprofile, s390: Cleanups 2011-03-16 14:30:40 +01:00