From: Stuart Yoder <stuart.yoder@freescale.com>
To: agraf@suse.de, kvm-ppc@vger.kernel.org, kvm@vger.kernel.org
Subject: [PATCH v10 2/5] KVM: PPC: use definitions in epapr header for hcalls
Date: Thu, 15 Mar 2012 20:52:14 +0000 [thread overview]
Message-ID: <1331844737-30869-3-git-send-email-stuart.yoder@freescale.com> (raw)
In-Reply-To: <1331844737-30869-1-git-send-email-stuart.yoder@freescale.com>
From: Stuart Yoder <stuart.yoder@freescale.com>
Signed-off-by: Stuart Yoder <stuart.yoder@freescale.com>
---
arch/powerpc/include/asm/kvm_para.h | 19 +++++++++----------
arch/powerpc/kernel/kvm.c | 2 +-
arch/powerpc/kvm/powerpc.c | 10 +++++-----
3 files changed, 15 insertions(+), 16 deletions(-)
diff --git a/arch/powerpc/include/asm/kvm_para.h b/arch/powerpc/include/asm/kvm_para.h
index c18916b..7d4a870 100644
--- a/arch/powerpc/include/asm/kvm_para.h
+++ b/arch/powerpc/include/asm/kvm_para.h
@@ -75,9 +75,8 @@ struct kvm_vcpu_arch_shared {
};
#define KVM_SC_MAGIC_R0 0x4b564d21 /* "KVM!" */
-#define HC_VENDOR_KVM (42 << 16)
-#define HC_EV_SUCCESS 0
-#define HC_EV_UNIMPLEMENTED 12
+
+#include <asm/epapr_hcalls.h>
#define KVM_FEATURE_MAGIC_PAGE 1
@@ -121,7 +120,7 @@ static unsigned long kvm_hypercall(unsigned long *in,
unsigned long *out,
unsigned long nr)
{
- return HC_EV_UNIMPLEMENTED;
+ return EV_UNIMPLEMENTED;
}
#endif
@@ -132,7 +131,7 @@ static inline long kvm_hypercall0_1(unsigned int nr, unsigned long *r2)
unsigned long out[8];
unsigned long r;
- r = kvm_hypercall(in, out, nr | HC_VENDOR_KVM);
+ r = kvm_hypercall(in, out, nr | EV_KVM_VENDOR_ID);
*r2 = out[0];
return r;
@@ -143,7 +142,7 @@ static inline long kvm_hypercall0(unsigned int nr)
unsigned long in[8];
unsigned long out[8];
- return kvm_hypercall(in, out, nr | HC_VENDOR_KVM);
+ return kvm_hypercall(in, out, nr | EV_KVM_VENDOR_ID);
}
static inline long kvm_hypercall1(unsigned int nr, unsigned long p1)
@@ -152,7 +151,7 @@ static inline long kvm_hypercall1(unsigned int nr, unsigned long p1)
unsigned long out[8];
in[0] = p1;
- return kvm_hypercall(in, out, nr | HC_VENDOR_KVM);
+ return kvm_hypercall(in, out, nr | EV_KVM_VENDOR_ID);
}
static inline long kvm_hypercall2(unsigned int nr, unsigned long p1,
@@ -163,7 +162,7 @@ static inline long kvm_hypercall2(unsigned int nr, unsigned long p1,
in[0] = p1;
in[1] = p2;
- return kvm_hypercall(in, out, nr | HC_VENDOR_KVM);
+ return kvm_hypercall(in, out, nr | EV_KVM_VENDOR_ID);
}
static inline long kvm_hypercall3(unsigned int nr, unsigned long p1,
@@ -175,7 +174,7 @@ static inline long kvm_hypercall3(unsigned int nr, unsigned long p1,
in[0] = p1;
in[1] = p2;
in[2] = p3;
- return kvm_hypercall(in, out, nr | HC_VENDOR_KVM);
+ return kvm_hypercall(in, out, nr | EV_KVM_VENDOR_ID);
}
static inline long kvm_hypercall4(unsigned int nr, unsigned long p1,
@@ -189,7 +188,7 @@ static inline long kvm_hypercall4(unsigned int nr, unsigned long p1,
in[1] = p2;
in[2] = p3;
in[3] = p4;
- return kvm_hypercall(in, out, nr | HC_VENDOR_KVM);
+ return kvm_hypercall(in, out, nr | EV_KVM_VENDOR_ID);
}
diff --git a/arch/powerpc/kernel/kvm.c b/arch/powerpc/kernel/kvm.c
index 1c13307..b5ba561 100644
--- a/arch/powerpc/kernel/kvm.c
+++ b/arch/powerpc/kernel/kvm.c
@@ -419,7 +419,7 @@ static void kvm_map_magic_page(void *data)
in[0] = KVM_MAGIC_PAGE;
in[1] = KVM_MAGIC_PAGE;
- kvm_hypercall(in, out, HC_VENDOR_KVM | KVM_HC_PPC_MAP_MAGIC_PAGE);
+ kvm_hypercall(in, out, _EV_HCALL_TOKEN(EV_KVM_VENDOR_ID, KVM_HC_PPC_MAP_MAGIC_PAGE));
*features = out[0];
}
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 58ad860..d738626 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -67,18 +67,18 @@ int kvmppc_kvm_pv(struct kvm_vcpu *vcpu)
}
switch (nr) {
- case HC_VENDOR_KVM | KVM_HC_PPC_MAP_MAGIC_PAGE:
+ case _EV_HCALL_TOKEN(EV_KVM_VENDOR_ID, KVM_HC_PPC_MAP_MAGIC_PAGE):
{
vcpu->arch.magic_page_pa = param1;
vcpu->arch.magic_page_ea = param2;
r2 = KVM_MAGIC_FEAT_SR | KVM_MAGIC_FEAT_MAS0_TO_SPRG7;
- r = HC_EV_SUCCESS;
+ r = 0; /* success */
break;
}
- case HC_VENDOR_KVM | KVM_HC_FEATURES:
- r = HC_EV_SUCCESS;
+ case _EV_HCALL_TOKEN(EV_KVM_VENDOR_ID, KVM_HC_FEATURES):
+ r = 0; /* success */
#if defined(CONFIG_PPC_BOOK3S) || defined(CONFIG_KVM_E500V2)
/* XXX Missing magic page on 44x */
r2 |= (1 << KVM_FEATURE_MAGIC_PAGE);
@@ -87,7 +87,7 @@ int kvmppc_kvm_pv(struct kvm_vcpu *vcpu)
/* Second return value is in r4 */
break;
default:
- r = HC_EV_UNIMPLEMENTED;
+ r = EV_UNIMPLEMENTED;
break;
}
--
1.7.3.4
WARNING: multiple messages have this Message-ID (diff)
From: Stuart Yoder <stuart.yoder@freescale.com>
To: <agraf@suse.de>, <kvm-ppc@vger.kernel.org>, <kvm@vger.kernel.org>
Subject: [PATCH v10 2/5] KVM: PPC: use definitions in epapr header for hcalls
Date: Thu, 15 Mar 2012 15:52:14 -0500 [thread overview]
Message-ID: <1331844737-30869-3-git-send-email-stuart.yoder@freescale.com> (raw)
In-Reply-To: <1331844737-30869-1-git-send-email-stuart.yoder@freescale.com>
From: Stuart Yoder <stuart.yoder@freescale.com>
Signed-off-by: Stuart Yoder <stuart.yoder@freescale.com>
---
arch/powerpc/include/asm/kvm_para.h | 19 +++++++++----------
arch/powerpc/kernel/kvm.c | 2 +-
arch/powerpc/kvm/powerpc.c | 10 +++++-----
3 files changed, 15 insertions(+), 16 deletions(-)
diff --git a/arch/powerpc/include/asm/kvm_para.h b/arch/powerpc/include/asm/kvm_para.h
index c18916b..7d4a870 100644
--- a/arch/powerpc/include/asm/kvm_para.h
+++ b/arch/powerpc/include/asm/kvm_para.h
@@ -75,9 +75,8 @@ struct kvm_vcpu_arch_shared {
};
#define KVM_SC_MAGIC_R0 0x4b564d21 /* "KVM!" */
-#define HC_VENDOR_KVM (42 << 16)
-#define HC_EV_SUCCESS 0
-#define HC_EV_UNIMPLEMENTED 12
+
+#include <asm/epapr_hcalls.h>
#define KVM_FEATURE_MAGIC_PAGE 1
@@ -121,7 +120,7 @@ static unsigned long kvm_hypercall(unsigned long *in,
unsigned long *out,
unsigned long nr)
{
- return HC_EV_UNIMPLEMENTED;
+ return EV_UNIMPLEMENTED;
}
#endif
@@ -132,7 +131,7 @@ static inline long kvm_hypercall0_1(unsigned int nr, unsigned long *r2)
unsigned long out[8];
unsigned long r;
- r = kvm_hypercall(in, out, nr | HC_VENDOR_KVM);
+ r = kvm_hypercall(in, out, nr | EV_KVM_VENDOR_ID);
*r2 = out[0];
return r;
@@ -143,7 +142,7 @@ static inline long kvm_hypercall0(unsigned int nr)
unsigned long in[8];
unsigned long out[8];
- return kvm_hypercall(in, out, nr | HC_VENDOR_KVM);
+ return kvm_hypercall(in, out, nr | EV_KVM_VENDOR_ID);
}
static inline long kvm_hypercall1(unsigned int nr, unsigned long p1)
@@ -152,7 +151,7 @@ static inline long kvm_hypercall1(unsigned int nr, unsigned long p1)
unsigned long out[8];
in[0] = p1;
- return kvm_hypercall(in, out, nr | HC_VENDOR_KVM);
+ return kvm_hypercall(in, out, nr | EV_KVM_VENDOR_ID);
}
static inline long kvm_hypercall2(unsigned int nr, unsigned long p1,
@@ -163,7 +162,7 @@ static inline long kvm_hypercall2(unsigned int nr, unsigned long p1,
in[0] = p1;
in[1] = p2;
- return kvm_hypercall(in, out, nr | HC_VENDOR_KVM);
+ return kvm_hypercall(in, out, nr | EV_KVM_VENDOR_ID);
}
static inline long kvm_hypercall3(unsigned int nr, unsigned long p1,
@@ -175,7 +174,7 @@ static inline long kvm_hypercall3(unsigned int nr, unsigned long p1,
in[0] = p1;
in[1] = p2;
in[2] = p3;
- return kvm_hypercall(in, out, nr | HC_VENDOR_KVM);
+ return kvm_hypercall(in, out, nr | EV_KVM_VENDOR_ID);
}
static inline long kvm_hypercall4(unsigned int nr, unsigned long p1,
@@ -189,7 +188,7 @@ static inline long kvm_hypercall4(unsigned int nr, unsigned long p1,
in[1] = p2;
in[2] = p3;
in[3] = p4;
- return kvm_hypercall(in, out, nr | HC_VENDOR_KVM);
+ return kvm_hypercall(in, out, nr | EV_KVM_VENDOR_ID);
}
diff --git a/arch/powerpc/kernel/kvm.c b/arch/powerpc/kernel/kvm.c
index 1c13307..b5ba561 100644
--- a/arch/powerpc/kernel/kvm.c
+++ b/arch/powerpc/kernel/kvm.c
@@ -419,7 +419,7 @@ static void kvm_map_magic_page(void *data)
in[0] = KVM_MAGIC_PAGE;
in[1] = KVM_MAGIC_PAGE;
- kvm_hypercall(in, out, HC_VENDOR_KVM | KVM_HC_PPC_MAP_MAGIC_PAGE);
+ kvm_hypercall(in, out, _EV_HCALL_TOKEN(EV_KVM_VENDOR_ID, KVM_HC_PPC_MAP_MAGIC_PAGE));
*features = out[0];
}
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
index 58ad860..d738626 100644
--- a/arch/powerpc/kvm/powerpc.c
+++ b/arch/powerpc/kvm/powerpc.c
@@ -67,18 +67,18 @@ int kvmppc_kvm_pv(struct kvm_vcpu *vcpu)
}
switch (nr) {
- case HC_VENDOR_KVM | KVM_HC_PPC_MAP_MAGIC_PAGE:
+ case _EV_HCALL_TOKEN(EV_KVM_VENDOR_ID, KVM_HC_PPC_MAP_MAGIC_PAGE):
{
vcpu->arch.magic_page_pa = param1;
vcpu->arch.magic_page_ea = param2;
r2 = KVM_MAGIC_FEAT_SR | KVM_MAGIC_FEAT_MAS0_TO_SPRG7;
- r = HC_EV_SUCCESS;
+ r = 0; /* success */
break;
}
- case HC_VENDOR_KVM | KVM_HC_FEATURES:
- r = HC_EV_SUCCESS;
+ case _EV_HCALL_TOKEN(EV_KVM_VENDOR_ID, KVM_HC_FEATURES):
+ r = 0; /* success */
#if defined(CONFIG_PPC_BOOK3S) || defined(CONFIG_KVM_E500V2)
/* XXX Missing magic page on 44x */
r2 |= (1 << KVM_FEATURE_MAGIC_PAGE);
@@ -87,7 +87,7 @@ int kvmppc_kvm_pv(struct kvm_vcpu *vcpu)
/* Second return value is in r4 */
break;
default:
- r = HC_EV_UNIMPLEMENTED;
+ r = EV_UNIMPLEMENTED;
break;
}
--
1.7.3.4
next prev parent reply other threads:[~2012-03-15 20:52 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-15 20:52 [PATCH v10 0/5] KVM: PPC: Add ePAPR idle hcall support Stuart Yoder
2012-03-15 20:52 ` Stuart Yoder
2012-03-15 20:52 ` [PATCH v10 1/5] KVM: PPC: Factor out guest epapr initialization Stuart Yoder
2012-03-15 20:52 ` Stuart Yoder
2012-05-08 10:25 ` Alexander Graf
2012-05-08 10:25 ` Alexander Graf
2012-03-15 20:52 ` Stuart Yoder [this message]
2012-03-15 20:52 ` [PATCH v10 2/5] KVM: PPC: use definitions in epapr header for hcalls Stuart Yoder
2012-05-08 10:29 ` Alexander Graf
2012-05-08 10:29 ` Alexander Graf
2012-03-15 20:52 ` [PATCH v10 3/5] KVM: PPC: Add support for ePAPR idle hcall in host kernel Stuart Yoder
2012-03-15 20:52 ` Stuart Yoder
2012-05-08 10:40 ` Alexander Graf
2012-05-08 10:40 ` Alexander Graf
2012-05-16 22:46 ` Scott Wood
2012-05-16 22:46 ` Scott Wood
2012-03-15 20:52 ` [PATCH v10 4/5] KVM: PPC: ev_idle hcall support for e500 guests Stuart Yoder
2012-03-15 20:52 ` Stuart Yoder
2012-05-08 10:45 ` Alexander Graf
2012-05-08 10:45 ` Alexander Graf
2012-03-15 20:52 ` [PATCH v10 5/5] PPC: Don't use hardcoded opcode for ePAPR hcall invocation Stuart Yoder
2012-03-15 20:52 ` Stuart Yoder
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1331844737-30869-3-git-send-email-stuart.yoder@freescale.com \
--to=stuart.yoder@freescale.com \
--cc=agraf@suse.de \
--cc=kvm-ppc@vger.kernel.org \
--cc=kvm@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.