|  | #include <linux/ftrace.h> | 
|  | #include <xen/interface/xen.h> | 
|  |  | 
|  | #define N(x)	[__HYPERVISOR_##x] = "("#x")" | 
|  | static const char *xen_hypercall_names[] = { | 
|  | N(set_trap_table), | 
|  | N(mmu_update), | 
|  | N(set_gdt), | 
|  | N(stack_switch), | 
|  | N(set_callbacks), | 
|  | N(fpu_taskswitch), | 
|  | N(sched_op_compat), | 
|  | N(dom0_op), | 
|  | N(set_debugreg), | 
|  | N(get_debugreg), | 
|  | N(update_descriptor), | 
|  | N(memory_op), | 
|  | N(multicall), | 
|  | N(update_va_mapping), | 
|  | N(set_timer_op), | 
|  | N(event_channel_op_compat), | 
|  | N(xen_version), | 
|  | N(console_io), | 
|  | N(physdev_op_compat), | 
|  | N(grant_table_op), | 
|  | N(vm_assist), | 
|  | N(update_va_mapping_otherdomain), | 
|  | N(iret), | 
|  | N(vcpu_op), | 
|  | N(set_segment_base), | 
|  | N(mmuext_op), | 
|  | N(acm_op), | 
|  | N(nmi_op), | 
|  | N(sched_op), | 
|  | N(callback_op), | 
|  | N(xenoprof_op), | 
|  | N(event_channel_op), | 
|  | N(physdev_op), | 
|  | N(hvm_op), | 
|  |  | 
|  | /* Architecture-specific hypercall definitions. */ | 
|  | N(arch_0), | 
|  | N(arch_1), | 
|  | N(arch_2), | 
|  | N(arch_3), | 
|  | N(arch_4), | 
|  | N(arch_5), | 
|  | N(arch_6), | 
|  | N(arch_7), | 
|  | }; | 
|  | #undef N | 
|  |  | 
|  | static const char *xen_hypercall_name(unsigned op) | 
|  | { | 
|  | if (op < ARRAY_SIZE(xen_hypercall_names) && xen_hypercall_names[op] != NULL) | 
|  | return xen_hypercall_names[op]; | 
|  |  | 
|  | return ""; | 
|  | } | 
|  |  | 
|  | #define CREATE_TRACE_POINTS | 
|  | #include <trace/events/xen.h> |