WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [IA64] new hyperprivop

# HG changeset patch
# User awilliam@xxxxxxxxxxx
# Node ID cd15ba9aa1ccfce053b2c9fb245ce55cdc7f9404
# Parent  f6feefcd10468f237a64be5725a50b91ffdd7fbe
[IA64] new hyperprivop

Missing hyperprivop added.
These were privified insn without hyperprivop.

Signed-off-by: Tristan Gingold <tristan.gingold@xxxxxxxx>

diff -r f6feefcd1046 -r cd15ba9aa1cc xen/arch/ia64/xen/privop.c
--- a/xen/arch/ia64/xen/privop.c        Thu Mar 16 19:13:23 2006
+++ b/xen/arch/ia64/xen/privop.c        Thu Mar 16 19:19:08 2006
@@ -797,12 +797,17 @@
 #define HYPERPRIVOP_GET_RR             0x10
 #define HYPERPRIVOP_SET_RR             0x11
 #define HYPERPRIVOP_SET_KR             0x12
-#define HYPERPRIVOP_MAX                        0x12
+#define HYPERPRIVOP_FC                 0x13
+#define HYPERPRIVOP_GET_CPUID          0x14
+#define HYPERPRIVOP_GET_PMD            0x15
+#define HYPERPRIVOP_GET_EFLAG          0x16
+#define HYPERPRIVOP_SET_EFLAG          0x17
+#define HYPERPRIVOP_MAX                        0x17
 
 static const char * const hyperpriv_str[HYPERPRIVOP_MAX+1] = {
        0, "rfi", "rsm.dt", "ssm.dt", "cover", "itc.d", "itc.i", "ssm.i",
        "=ivr", "=tpr", "tpr=", "eoi", "itm=", "thash", "ptc.ga", "itr.d",
-       "=rr", "rr=", "kr="
+       "=rr", "rr=", "kr=", "fc", "=cpuid", "=pmd", "=ar.eflg", "ar.eflg="
 };
 
 unsigned long slow_hyperpriv_cnt[HYPERPRIVOP_MAX+1] = { 0 };
@@ -888,6 +893,24 @@
                return 1;
            case HYPERPRIVOP_SET_KR:
                (void)vcpu_set_ar(v,regs->r8,regs->r9);
+               return 1;
+           case HYPERPRIVOP_FC:
+               (void)vcpu_fc(v,regs->r8);
+               return 1;
+           case HYPERPRIVOP_GET_CPUID:
+               (void)vcpu_get_cpuid(v,regs->r8,&val);
+               regs->r8 = val;
+               return 1;
+           case HYPERPRIVOP_GET_PMD:
+               (void)vcpu_get_pmd(v,regs->r8,&val);
+               regs->r8 = val;
+               return 1;
+           case HYPERPRIVOP_GET_EFLAG:
+               (void)vcpu_get_ar(v,24,&val);
+               regs->r8 = val;
+               return 1;
+           case HYPERPRIVOP_SET_EFLAG:
+               (void)vcpu_set_ar(v,24,regs->r8);
                return 1;
        }
        return 0;
@@ -934,7 +957,7 @@
 };
 
 // FIXME: should use snprintf to ensure no buffer overflow
-int dump_privop_counts(char *buf)
+static int dump_privop_counts(char *buf)
 {
        int i, j;
        UINT64 sum = 0;
@@ -1007,7 +1030,7 @@
        return s - buf;
 }
 
-int zero_privop_counts(char *buf)
+static int zero_privop_counts(char *buf)
 {
        int i, j;
        char *s = buf;
@@ -1043,7 +1066,7 @@
        v->overflow++;;
 }
 
-int dump_privop_addrs(char *buf)
+static int dump_privop_addrs(char *buf)
 {
        int i,j;
        char *s = buf;
@@ -1061,7 +1084,7 @@
        return s - buf;
 }
 
-void zero_privop_addrs(void)
+static void zero_privop_addrs(void)
 {
        int i,j;
        for (i = 0; i < PRIVOP_COUNT_NINSTS; i++) {
@@ -1085,7 +1108,7 @@
 extern unsigned long pal_halt_light_count;
 extern unsigned long context_switch_count;
 
-int dump_misc_stats(char *buf)
+static int dump_misc_stats(char *buf)
 {
        char *s = buf;
        s += sprintf(s,"Virtual TR translations: %ld\n",tr_translate_count);
@@ -1102,7 +1125,7 @@
        return s - buf;
 }
 
-void zero_misc_stats(void)
+static void zero_misc_stats(void)
 {
        dtlb_translate_count = 0;
        tr_translate_count = 0;
@@ -1117,7 +1140,7 @@
        context_switch_count = 0;
 }
 
-int dump_hyperprivop_counts(char *buf)
+static int dump_hyperprivop_counts(char *buf)
 {
        int i;
        char *s = buf;
@@ -1138,7 +1161,7 @@
        return s - buf;
 }
 
-void zero_hyperprivop_counts(void)
+static void zero_hyperprivop_counts(void)
 {
        int i;
        for (i = 0; i <= HYPERPRIVOP_MAX; i++) slow_hyperpriv_cnt[i] = 0;

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [IA64] new hyperprivop, Xen patchbot -unstable <=