linux/arch/mips/include/asm
James Hogan 955d8dc3ee KVM: MIPS: Implement HYPCALL emulation
Emulate the HYPCALL instruction added in the VZ ASE and used by the MIPS
paravirtualised guest support that is already merged. The new hypcall.c
handles arguments and the return value. No actual hypercalls are yet
supported, but this still allows us to safely step over hypercalls and
set an error code in the return value for forward compatibility.

Non-zero HYPCALL codes are not handled.

We also document the hypercall ABI which asm/kvm_para.h uses.

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Acked-by: Ralf Baechle <ralf@linux-mips.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Radim Krčmář" <rkrcmar@redhat.com>
Cc: Andreas Herrmann <andreas.herrmann@caviumnetworks.com>
Cc: David Daney <david.daney@cavium.com>
Cc: Jonathan Corbet <corbet@lwn.net>
Cc: linux-mips@linux-mips.org
Cc: kvm@vger.kernel.org
Cc: linux-doc@vger.kernel.org
2017-03-28 14:53:33 +01:00
..
dec
emma
fw
ip32
lasat
mach-ar7
mach-ath25
mach-ath79 irqchip/ath79-cpu: Move the CPU IRQ driver from arch/mips/ath79/ 2016-02-17 13:47:19 +00:00
mach-au1x00 MIPS: Spelling fix lets -> let's 2016-05-28 12:35:09 +02:00
mach-bcm47xx MIPS: BCM47XX: Add Luxul devices to the database 2017-01-25 02:51:12 +01:00
mach-bcm63xx MIPS: BCM63xx: Fix typo 2016-05-28 12:35:06 +02:00
mach-bmips MIPS: BMIPS: Add BCM6358 support 2016-05-13 14:02:09 +02:00
mach-cavium-octeon This is a tree wide change and has been kept separate for that reason. 2017-02-25 13:45:43 -08:00
mach-cobalt
mach-db1x00
mach-dec
mach-emma2rh
mach-generic MIPS: Adjust MIPS64 CAC_BASE to reflect Config.K0 2016-10-06 18:02:35 +02:00
mach-ip22
mach-ip27 MIPS: VDSO: avoid duplicate CAC_BASE definition 2017-01-25 02:51:09 +01:00
mach-ip28
mach-ip32 MIPS: IP32: Fix typo 2016-05-28 12:35:07 +02:00
mach-jazz
mach-jz4740 MIPS: jz4740: Remove obsolete code 2016-11-05 00:02:02 +01:00
mach-lantiq MIPS: Spelling fix lets -> let's 2016-05-28 12:35:09 +02:00
mach-lasat
mach-loongson32 MIPS: Loongson1: Add watchdog support for Loongson1 board 2017-01-03 16:34:42 +01:00
mach-loongson64 treewide: remove redundant #include <linux/kconfig.h> 2016-10-11 15:06:33 -07:00
mach-malta MIPS: Add definitions of SegCtl registers and use them 2016-05-28 12:35:04 +02:00
mach-netlogic
mach-paravirt MIPS: paravirt: Fix undefined reference to smp_bootstrap 2016-09-13 16:45:15 +02:00
mach-pic32 MIPS: Add support for PIC32MZDA platform 2016-01-24 02:53:28 +01:00
mach-pistachio
mach-pmcs-msp71xx
mach-pnx833x
mach-ralink MIPS: ralink: Add missing pinmux. 2017-01-03 16:34:47 +01:00
mach-rc32434
mach-rm
mach-sibyte
mach-tx39xx
mach-tx49xx
mach-vr41xx
mach-xilfpga
mips-boards MIPS: SEAD3: Probe EHCI controller using DT 2016-10-05 01:31:20 +02:00
netlogic treewide: Constify most dma_map_ops structures 2017-01-24 12:23:35 -05:00
octeon MIPS: OCTEON: Platform support for OCTEON III USB controller 2017-02-14 08:52:46 +00:00
pci MIPS: Fix misspellings in comments. 2016-04-03 12:32:09 +02:00
sgi MIPS: IP22/IP28: Fix typo 2016-05-28 12:35:08 +02:00
sibyte MIPS: BCM1480: bcm1480_regs.h: strip redundant comments 2016-05-13 14:02:13 +02:00
sn MIPS: Fix misspellings in comments. 2016-04-03 12:32:09 +02:00
txx9
vr41xx
xtalk
abi.h signals: Prepare to split out <linux/signal_types.h> from <linux/signal.h> 2017-03-02 08:42:37 +01:00
addrspace.h MIPS: Adjust MIPS64 CAC_BASE to reflect Config.K0 2016-10-06 18:02:35 +02:00
amon.h
arch_hweight.h
asm-eva.h
asm-offsets.h
asm-prototypes.h MIPS: Fix modversions 2017-01-24 18:30:35 +01:00
asm.h MIPS: End asm function prologue macros with .insn 2017-01-03 16:34:49 +01:00
asmmacro-32.h
asmmacro-64.h
asmmacro.h MIPS: Add a missing ".set pop" in an early commit 2016-09-13 17:25:11 +02:00
atomic.h locking/atomic, arch/mips: Convert to _relaxed atomics 2016-06-16 10:48:34 +02:00
barrier.h MIPS: Barrier: Add definitions of SYNC stype values 2016-10-04 16:13:57 +02:00
bcache.h
bitops.h MIPS: Move definitions for 32/64-bit agonstic inline assembler to new file. 2016-05-09 12:00:05 +02:00
bitrev.h MIPS: Implement __arch_bitrev* using bitswap for MIPSr6 2016-05-13 14:02:17 +02:00
bmips-spaces.h
bmips.h MIPS: BMIPS: Add early CPU initialization code 2016-05-13 14:01:55 +02:00
bootinfo.h MIPS: platform: Allow for DTB to be moved during kernel relocation 2017-01-03 16:34:45 +01:00
branch.h
break.h
bug.h
bugs.h
cache.h
cacheflush.h MIPS: c-r4k: Split user/kernel flush_icache_range() 2016-10-04 16:13:57 +02:00
cacheops.h MIPS: Loongson: Add Loongson-3A R2 basic support 2016-05-13 14:02:14 +02:00
cdmm.h
cevt-r4k.h
checksum.h MIPS: Fix special case in 64 bit IP checksumming. 2017-02-17 11:14:27 +00:00
clock.h
clocksource.h
cmp.h
cmpxchg.h
compat-signal.h Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
compat.h
compiler.h
cop2.h
cpu-features.h MIPS: Probe guest MVH 2017-03-28 14:49:15 +01:00
cpu-info.h MIPS: Add probing & defs for VZ & guest features 2016-05-13 15:30:25 +02:00
cpu-type.h MIPS: Add CPU support for Loongson1C 2016-10-04 16:13:57 +02:00
cpu.h MIPS: Add defs & probing of UFR 2017-03-28 14:48:53 +01:00
debug.h
delay.h
device.h treewide: Move dma_ops from struct dev_archdata into struct device 2017-01-24 12:23:35 -05:00
div64.h
dma-coherence.h MIPS: Support per-device DMA coherence 2016-10-06 18:02:01 +02:00
dma-mapping.h treewide: Consolidate get_dma_ops() implementations 2017-01-24 12:23:35 -05:00
dma.h
ds1287.h
dsemul.h MIPS: Use per-mm page to execute branch delay slot instructions 2016-08-02 09:28:53 +02:00
dsp.h
edac.h
elf.h sched/headers: Prepare to remove the <linux/mm_types.h> dependency from <linux/sched.h> 2017-03-02 08:42:37 +01:00
errno.h
eva.h
exec.h
extable.h mips: separate extable.h, switch module.h to it 2016-10-05 18:36:18 -04:00
fb.h
fixmap.h
floppy.h
fpregdef.h
fpu.h MIPS: Add missing include files 2017-03-08 10:38:06 +01:00
fpu_emulator.h MIPS: Fix FCSR Cause bit handling for correct SIGFPE issue 2016-11-04 01:28:41 +01:00
ftrace.h
futex.h
gio_device.h
gt64120.h
hardirq.h
hazards.h MIPS: hazards.h: Fix typo 2016-05-28 12:35:06 +02:00
highmem.h MIPS: Remove unused HIGHMEM_DEBUG macro 2017-01-03 16:34:37 +01:00
hpet.h
hugetlb.h
hw_irq.h
i8259.h MIPS: IRQ: Remove useless i8259_of_init() prototype. 2017-01-03 16:34:48 +01:00
ide.h
idle.h
inst.h
io.h MIPS: Loongson-3: Introduce CONFIG_LOONGSON3_ENHANCEMENT 2016-05-13 14:02:15 +02:00
irq.h MIPS: Introduce irq_stack 2017-01-03 16:34:34 +01:00
irq_cpu.h
irq_gt641xx.h
irq_regs.h MIPS: Select CONFIG_HANDLE_DOMAIN_IRQ and make it work. 2016-05-13 14:01:40 +02:00
irqflags.h MIPS: Loongson-3: Introduce CONFIG_LOONGSON3_ENHANCEMENT 2016-05-13 14:02:15 +02:00
isadep.h
jazz.h
jazzdma.h
jump_label.h
Kbuild MIPS changes for v4.11 2017-02-21 14:21:11 -08:00
kdebug.h
kexec.h mips/panic: replace smp_send_stop() with kdump friendly version in panic path 2016-10-11 15:06:32 -07:00
kgdb.h
kmap_types.h
kprobes.h kprobes: move kprobe declarations to asm-generic/kprobes.h 2017-02-27 18:43:45 -08:00
kvm_host.h KVM: MIPS: Implement HYPCALL emulation 2017-03-28 14:53:33 +01:00
kvm_para.h
linkage.h
llsc.h MIPS: Move definitions for 32/64-bit agonstic inline assembler to new file. 2016-05-09 12:00:05 +02:00
local.h
m48t37.h
maar.h MIPS: Separate MAAR V bit into VL and VH for XPA 2017-03-28 14:49:01 +01:00
machine.h MIPS: generic: Introduce generic DT-based board support 2016-10-06 18:04:04 +02:00
mc146818-time.h
mc146818rtc.h
mips-cm.h MIPS: traps: Ensure L1 & L2 ECC checking match for CM3 systems 2017-01-03 16:34:41 +01:00
mips-cpc.h MIPS: CPC: Add start, stop and running CM3 CPC registers 2016-05-13 14:01:48 +02:00
mips-r2-to-r6-emul.h MIPS: traps: Correct the SIGTRAP debug ABI in do_watch' and do_trap_or_bp' 2016-04-03 12:32:09 +02:00
mips_machine.h
mips_mt.h MIPS: MT: Fix typo 2016-05-28 12:35:07 +02:00
mipsmtregs.h
mipsprom.h
mipsregs.h MIPS: Add some missing guest CP0 accessors & defs 2017-03-28 14:49:26 +01:00
mmu.h MIPS: Use per-mm page to execute branch delay slot instructions 2016-08-02 09:28:53 +02:00
mmu_context.h sched/headers: Prepare to remove the <linux/mm_types.h> dependency from <linux/sched.h> 2017-03-02 08:42:37 +01:00
mmzone.h
module.h mips: separate extable.h, switch module.h to it 2016-10-05 18:36:18 -04:00
msa.h MIPS: Fix MSA asm warnings in control reg accessors 2016-07-24 12:45:00 +02:00
msc01_ic.h
nile4.h
paccess.h
page.h treewide: replace config_enabled() with IS_ENABLED() (2nd round) 2016-08-26 17:39:35 -07:00
pci.h MIPS: PCI: Introduce CONFIG_PCI_DRIVERS_LEGACY 2016-10-06 18:00:05 +02:00
perf_event.h
pgalloc.h MIPS: Move pgd_alloc() out of header 2017-02-02 15:06:26 +00:00
pgtable-32.h arch, mm: convert all architectures to use 5level-fixup.h 2017-03-09 11:48:47 -08:00
pgtable-64.h arch, mm: convert all architectures to use 5level-fixup.h 2017-03-09 11:48:47 -08:00
pgtable-bits.h MIPS: Allow RIXI to be used on non-R2 or R6 cores 2016-05-13 15:30:25 +02:00
pgtable.h mm: move phys_mem_access_prot_allowed() declaration to pgtable.h 2016-10-07 18:46:29 -07:00
pm-cps.h MIPS: pm-cps: Add MIPSr6 CPU support 2016-10-04 16:13:57 +02:00
pm.h
pmon.h
prefetch.h
processor.h locking/core: Provide common cpu_relax_yield() definition 2016-11-17 08:17:36 +01:00
prom.h
ptrace.h MIPS: ptrace: Fix regs_return_value for kernel context 2016-10-12 14:34:45 +02:00
r4k-timer.h
r4kcache.h MIPS: Fix protected_cache(e)_op() for microMIPS 2017-02-13 18:57:33 +00:00
reboot.h
reg.h
regdef.h
rtlx.h
seccomp.h tree-wide: replace config_enabled() with IS_ENABLED() 2016-08-04 08:50:07 -04:00
setup.h MIPS: KVM: Don't hardcode restored HWREna 2016-06-15 23:58:31 +02:00
sgialib.h
sgiarcs.h MIPS: Fix misspellings in comments. 2016-04-03 12:32:09 +02:00
shmparam.h
sigcontext.h
signal.h Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2016-08-06 09:13:11 -04:00
sim.h
smp-cps.h MIPS: smp-cps: Pull boot config retrieval out of mips_cps_boot_vpes 2016-05-13 14:01:50 +02:00
smp-ops.h MIPS: Make smp CMP, CPS and MT use the new generic IPI functions 2016-02-25 10:56:58 +01:00
smp.h MIPS: kexec: remove SMP_DUMP 2017-01-03 16:34:44 +01:00
sni.h
socket.h
sparsemem.h
spinlock.h locking/spinlock, arch: Update and fix spin_unlock_wait() implementations 2016-06-14 11:55:15 +02:00
spinlock_types.h
spram.h
stackframe.h MIPS: Remove RESTORE_ALL_AND_RET 2017-01-03 16:34:42 +01:00
stackprotector.h
stacktrace.h
string.h
switch_to.h MIPS: Cleanup LLBit handling in switch_to 2017-01-03 16:34:42 +01:00
syscall.h tree-wide: replace config_enabled() with IS_ENABLED() 2016-08-04 08:50:07 -04:00
termios.h Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
thread_info.h MIPS: Remove r2_emul_return from struct thread_info 2017-01-03 16:34:41 +01:00
time.h
timex.h
tlb.h MIPS: asm/tlb.h: Add UNIQUE_GUEST_ENTRYHI() macro 2017-03-28 14:49:30 +01:00
tlbdebug.h
tlbex.h MIPS: Export some tlbex internals for KVM to use 2017-02-03 15:19:01 +00:00
tlbflush.h
tlbmisc.h
topology.h
traps.h
txx9irq.h
txx9pio.h
txx9tmr.h
types.h
uaccess.h MIPS: Fix modversions 2017-01-24 18:30:35 +01:00
uasm.h MIPS: uasm: Add include guards in asm/uasm.h 2017-02-03 15:19:01 +00:00
unistd.h
uprobes.h uprobes: remove function declarations from arch/{mips,s390} 2016-10-07 18:46:30 -07:00
vdso.h
vga.h
vpe.h
war.h
watch.h MIPS: Fix watchpoint restoration 2016-05-09 12:00:02 +02:00
wbflush.h