-Original Message-
From: Alexander Graf [mailto:ag...@suse.de]
Sent: Monday, July 15, 2013 4:51 PM
To: Bhushan Bharat-R65777
Cc: k...@vger.kernel.org; kvm-ppc@vger.kernel.org; Wood Scott-B07421; Yoder
Stuart-B08248; Bhushan Bharat-R65777
Subject: Re: [PATCH 1/5] powerpc: define ePAPR hcall exit interface
On 15.07.2013, at 13:11, Bharat Bhushan wrote:
This patch defines the ePAPR hcall exit interface to guest user space.
The subject line is misleading. This is a kvm patch. Same applies for most
other
patches.
Ok, will make this kvm: powerpc: define ePAPR hcall exit interface
Signed-off-by: Bharat Bhushan bharat.bhus...@freescale.com
---
Documentation/virtual/kvm/api.txt | 20
include/uapi/linux/kvm.h |7 +++
2 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/Documentation/virtual/kvm/api.txt
b/Documentation/virtual/kvm/api.txt
index 66dd2aa..054f2f4 100644
--- a/Documentation/virtual/kvm/api.txt
+++ b/Documentation/virtual/kvm/api.txt
@@ -2597,6 +2597,26 @@ The possible hypercalls are defined in the
Power Architecture Platform Requirements (PAPR) document available
from www.power.org (free developer registration required to access it).
+ /* KVM_EXIT_EPAPR_HCALL */
+ struct {
+ __u64 nr;
+ __u64 ret;
+ __u64 args[8];
+ } epapr_hcall;
+
+This is used on PowerPC platforms that support ePAPR hcalls.
+It occurs when a guest does a hypercall (as defined in the ePAPR 1.1)
+and the hcall is not handled by the kernel.
+
+The 'nr' field contains the hypercall number (from the guest R11),
+and 'args' contains the arguments (from the guest R3 - R10).
+Userspace should put the return code in 'ret' and any extra returned
+values in args[]. If the VM is not in 64-bit mode KVM zeros the
+upper half of each field in the struct.
+
+As per the ePAPR hcall ABI, the return value is returned to the guest
+in R3 and output return values in R4 - R10.
+
/* KVM_EXIT_S390_TSCH */
struct {
__u16 subchannel_id;
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index
acccd08..01ee50e 100644
--- a/include/uapi/linux/kvm.h
+++ b/include/uapi/linux/kvm.h
@@ -171,6 +171,7 @@ struct kvm_pit_config {
#define KVM_EXIT_WATCHDOG 21
#define KVM_EXIT_S390_TSCH22
#define KVM_EXIT_EPR 23
+#define KVM_EXIT_EPAPR_HCALL 24
/* For KVM_EXIT_INTERNAL_ERROR */
/* Emulate instruction failed. */
@@ -288,6 +289,12 @@ struct kvm_run {
__u64 ret;
__u64 args[9];
} papr_hcall;
+ /* KVM_EXIT_EPAPR_HCALL */
+ struct {
+ __u64 nr;
+ __u64 ret;
+ __u64 args[8];
+ } epapr_hcall;
This should be at the end of the union.
Ok.
-Bharat
Alex
/* KVM_EXIT_S390_TSCH */
struct {
__u16 subchannel_id;
--
1.7.0.4
--
To unsubscribe from this list: send the line unsubscribe kvm-ppc in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html