diff -r 8c6bb45901e7 tools/misc/xenperf.c --- a/tools/misc/xenperf.c Wed Aug 16 14:28:57 2006 -0600 +++ b/tools/misc/xenperf.c Fri Aug 18 18:30:48 2006 +0900 @@ -10,13 +10,81 @@ * Description: */ - #include #include #include #include #include #include + +const char* hypercall_name_table[64]= +{ + "set_trap_table", //0 + "mmu_update", //1 + "set_gdt", //2 + "stack_switch", //3 + "set_callbacks", //4 + "fpu_taskswitch", //5 + "sched_op_compat", //6 + "dom0_op", //7 + "set_debugreg", //8 + "get_debugreg", //9 + "update_descriptor", //10 + "NULL", //11 + "memory_op", //12 + "multicall", //13 + "update_va_mapping", //14 + "set_timer_op", //15 + "event_channel_op_compat",// 16 /* compat since 0x00030202 */ + "xen_version", //17 + "console_io", //18 + "physdev_op_compat", //19 /* compat since 0x00030202 */ + "grant_table_op", //20 + "vm_assist", //21 + "update_va_mapping_otherdomain", //22 + "iret", //23 /* x86 only */ + "vcpu_op", //24 + "set_segment_base", //25 /* x86/64 only */ + "mmuext_op", //26 + "acm_op", //27 + "nmi_op", //28 + "sched_op", //29 + "callback_op", //30 + "xenoprof_op", //31 + "event_channel_op", //32 + "physdev_op", //33 + "hvm_op", //34 + "NULL", //35 + "NULL", //36 + "NULL", //37 + "NULL", //38 + "NULL", //39 + "NULL", //40 + "NULL", //41 + "NULL", //42 + "NULL", //43 + "NULL", //44 + "NULL", //45 + "NULL", //46 + "NULL", //47 +/* Architecture-specific hypercall definitions. */ + "arch_0", //48 + "arch_1", //49 + "arch_2", //50 + "arch_3", //51 + "arch_4", //52 + "arch_5", //53 + "arch_6", //54 + "arch_7", //55 + "NULL", //56 + "NULL", //57 + "NULL", //58 + "NULL", //59 + "NULL", //60 + "NULL", //61 + "NULL", //62 + "NULL" //63 +}; int main(int argc, char *argv[]) { @@ -117,10 +185,17 @@ int main(int argc, char *argv[]) sum += val[j]; printf ("T=%10u ", (unsigned int)sum); - if ( full || (pcd[i].nr_vals <= 4) ) + if ( full || (pcd[i].nr_vals <= 4) ){ + if( strcmp(pcd[i].name, "hypercalls") == 0 ){ + for( j = 0; j < pcd[i].nr_vals; j++ ) + printf("%s\t", hypercall_name_table[j]); + printf("\n"); + } for ( j = 0; j < pcd[i].nr_vals; j++ ) printf(" %10u", (unsigned int)val[j]); + } + printf("\n"); val += pcd[i].nr_vals; }