[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.