Rename some macros, and, in particular, use the same naming scheme as Linux.
This scheme highlights in which version a particular function was introduced.

With this, let's also introduce PSCI version {en,de}coder macros. We will later
benefit from this macros.

No functional change.

Signed-off-by: Ralf Ramsauer <ralf.ramsa...@oth-regensburg.de>
---
 hypervisor/arch/arm-common/include/asm/psci.h | 41 ++++++++++++++-----
 hypervisor/arch/arm-common/psci.c             | 38 ++++++++---------
 2 files changed, 49 insertions(+), 30 deletions(-)

diff --git a/hypervisor/arch/arm-common/include/asm/psci.h 
b/hypervisor/arch/arm-common/include/asm/psci.h
index c7b6a2c6..c0b6cff5 100644
--- a/hypervisor/arch/arm-common/include/asm/psci.h
+++ b/hypervisor/arch/arm-common/include/asm/psci.h
@@ -10,15 +10,25 @@
  * the COPYING file in the top-level directory.
  */
 
-#define PSCI_VERSION                   0x84000000
-#define PSCI_CPU_SUSPEND_32            0x84000001
-#define PSCI_CPU_SUSPEND_64            0xc4000001
-#define PSCI_CPU_OFF                   0x84000002
-#define PSCI_CPU_ON_32                 0x84000003
-#define PSCI_CPU_ON_64                 0xc4000003
-#define PSCI_AFFINITY_INFO_32          0x84000004
-#define PSCI_AFFINITY_INFO_64          0xc4000004
-#define PSCI_FEATURES                  0x8400000a
+/* PSCI v0.2 interface */
+#define PSCI_0_2_FN_BASE               0x84000000
+#define PSCI_0_2_FN(n)                 (PSCI_0_2_FN_BASE + (n))
+#define PSCI_0_2_64BIT                 0x40000000
+#define PSCI_0_2_FN64_BASE             (PSCI_0_2_FN_BASE + PSCI_0_2_64BIT)
+#define PSCI_0_2_FN64(n)               (PSCI_0_2_FN64_BASE + (n))
+
+#define PSCI_0_2_FN_VERSION            PSCI_0_2_FN(0)
+#define PSCI_0_2_FN_CPU_SUSPEND                PSCI_0_2_FN(1)
+#define PSCI_0_2_FN_CPU_OFF            PSCI_0_2_FN(2)
+#define PSCI_0_2_FN_CPU_ON             PSCI_0_2_FN(3)
+#define PSCI_0_2_FN_AFFINITY_INFO      PSCI_0_2_FN(4)
+
+#define PSCI_0_2_FN64_CPU_SUSPEND      PSCI_0_2_FN64(1)
+#define PSCI_0_2_FN64_CPU_ON           PSCI_0_2_FN64(3)
+#define PSCI_0_2_FN64_AFFINITY_INFO    PSCI_0_2_FN64(4)
+
+/* PSCI v1.0 interface */
+#define PSCI_1_0_FN_FEATURES           PSCI_0_2_FN(10)
 
 /* v0.1 function IDs as used by U-Boot */
 #define PSCI_CPU_OFF_V0_1_UBOOT                0x95c1ba5f
@@ -37,8 +47,17 @@
 
 #define PSCI_INVALID_ADDRESS           (-1L)
 
-/* Major[31:16], minor[15:0] */
-#define PSCI_VERSION_1_1       0x10001
+#define PSCI_VERSION_MAJOR_SHIFT                16
+#define PSCI_VERSION_MINOR_MASK                 \
+                       ((1U << PSCI_VERSION_MAJOR_SHIFT) - 1)
+#define PSCI_VERSION_MAJOR_MASK                 ~PSCI_VERSION_MINOR_MASK
+#define PSCI_VERSION_MAJOR(ver)                 \
+                       (((ver) & PSCI_VERSION_MAJOR_MASK) >> 
PSCI_VERSION_MAJOR_SHIFT)
+#define PSCI_VERSION_MINOR(ver)                 \
+                       ((ver) & PSCI_VERSION_MINOR_MASK)
+#define PSCI_VERSION(maj, min)                                          \
+               ((((maj) << PSCI_VERSION_MAJOR_SHIFT) & 
PSCI_VERSION_MAJOR_MASK) | \
+                         ((min) & PSCI_VERSION_MINOR_MASK))
 
 struct trap_context;
 
diff --git a/hypervisor/arch/arm-common/psci.c 
b/hypervisor/arch/arm-common/psci.c
index 6f3825be..13d89e15 100644
--- a/hypervisor/arch/arm-common/psci.c
+++ b/hypervisor/arch/arm-common/psci.c
@@ -69,15 +69,15 @@ static long psci_emulate_affinity_info(struct trap_context 
*ctx)
 static long psci_emulate_features_info(struct trap_context *ctx)
 {
        switch (ctx->regs[1]) {
-       case PSCI_VERSION:
-       case PSCI_CPU_SUSPEND_32:
-       case PSCI_CPU_SUSPEND_64:
-       case PSCI_CPU_OFF:
-       case PSCI_CPU_ON_32:
-       case PSCI_CPU_ON_64:
-       case PSCI_AFFINITY_INFO_32:
-       case PSCI_AFFINITY_INFO_64:
-       case PSCI_FEATURES:
+       case PSCI_0_2_FN_VERSION:
+       case PSCI_0_2_FN_CPU_SUSPEND:
+       case PSCI_0_2_FN64_CPU_SUSPEND:
+       case PSCI_0_2_FN_CPU_OFF:
+       case PSCI_0_2_FN_CPU_ON:
+       case PSCI_0_2_FN64_CPU_ON:
+       case PSCI_0_2_FN_AFFINITY_INFO:
+       case PSCI_0_2_FN64_AFFINITY_INFO:
+       case PSCI_1_0_FN_FEATURES:
        case SMCCC_VERSION:
                return PSCI_SUCCESS;
 
@@ -91,32 +91,32 @@ long psci_dispatch(struct trap_context *ctx)
        this_cpu_public()->stats[JAILHOUSE_CPU_STAT_VMEXITS_PSCI]++;
 
        switch (ctx->regs[0]) {
-       case PSCI_VERSION:
-               return PSCI_VERSION_1_1;
+       case PSCI_0_2_FN_VERSION:
+               return PSCI_VERSION(1, 1);
 
-       case PSCI_CPU_SUSPEND_32:
-       case PSCI_CPU_SUSPEND_64:
+       case PSCI_0_2_FN_CPU_SUSPEND:
+       case PSCI_0_2_FN64_CPU_SUSPEND:
                if (!irqchip_has_pending_irqs()) {
                        asm volatile("wfi" : : : "memory");
                        irqchip_handle_irq();
                }
                return 0;
 
-       case PSCI_CPU_OFF:
+       case PSCI_0_2_FN_CPU_OFF:
        case PSCI_CPU_OFF_V0_1_UBOOT:
                arm_cpu_park();
                return 0;
 
-       case PSCI_CPU_ON_32:
-       case PSCI_CPU_ON_64:
+       case PSCI_0_2_FN_CPU_ON:
+       case PSCI_0_2_FN64_CPU_ON:
        case PSCI_CPU_ON_V0_1_UBOOT:
                return psci_emulate_cpu_on(ctx);
 
-       case PSCI_AFFINITY_INFO_32:
-       case PSCI_AFFINITY_INFO_64:
+       case PSCI_0_2_FN_AFFINITY_INFO:
+       case PSCI_0_2_FN64_AFFINITY_INFO:
                return psci_emulate_affinity_info(ctx);
 
-       case PSCI_FEATURES:
+       case PSCI_1_0_FN_FEATURES:
                return psci_emulate_features_info(ctx);
 
        default:
-- 
2.19.1

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jailhouse-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to