cregit-Linux how code gets into the kernel

Release 4.7 tools/lib/traceevent/plugin_xen.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "event-parse.h"


#define __HYPERVISOR_set_trap_table			0

#define __HYPERVISOR_mmu_update				1

#define __HYPERVISOR_set_gdt				2

#define __HYPERVISOR_stack_switch			3

#define __HYPERVISOR_set_callbacks			4

#define __HYPERVISOR_fpu_taskswitch			5

#define __HYPERVISOR_sched_op_compat			6

#define __HYPERVISOR_dom0_op				7

#define __HYPERVISOR_set_debugreg			8

#define __HYPERVISOR_get_debugreg			9

#define __HYPERVISOR_update_descriptor			10

#define __HYPERVISOR_memory_op				12

#define __HYPERVISOR_multicall				13

#define __HYPERVISOR_update_va_mapping			14

#define __HYPERVISOR_set_timer_op			15

#define __HYPERVISOR_event_channel_op_compat		16

#define __HYPERVISOR_xen_version			17

#define __HYPERVISOR_console_io				18

#define __HYPERVISOR_physdev_op_compat			19

#define __HYPERVISOR_grant_table_op			20

#define __HYPERVISOR_vm_assist				21

#define __HYPERVISOR_update_va_mapping_otherdomain	22

#define __HYPERVISOR_iret				23 
/* x86 only */

#define __HYPERVISOR_vcpu_op				24

#define __HYPERVISOR_set_segment_base			25 
/* x86/64 only */

#define __HYPERVISOR_mmuext_op				26

#define __HYPERVISOR_acm_op				27

#define __HYPERVISOR_nmi_op				28

#define __HYPERVISOR_sched_op				29

#define __HYPERVISOR_callback_op			30

#define __HYPERVISOR_xenoprof_op			31

#define __HYPERVISOR_event_channel_op			32

#define __HYPERVISOR_physdev_op				33

#define __HYPERVISOR_hvm_op				34

#define __HYPERVISOR_tmem_op				38

/* Architecture-specific hypercall definitions. */

#define __HYPERVISOR_arch_0				48

#define __HYPERVISOR_arch_1				49

#define __HYPERVISOR_arch_2				50

#define __HYPERVISOR_arch_3				51

#define __HYPERVISOR_arch_4				52

#define __HYPERVISOR_arch_5				53

#define __HYPERVISOR_arch_6				54

#define __HYPERVISOR_arch_7				55


#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


#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))


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 ""; }

Contributors

PersonTokensPropCommitsCommitProp
jiri olsajiri olsa36100.00%1100.00%
Total36100.00%1100.00%


unsigned long long process_xen_hypercall_name(struct trace_seq *s, unsigned long long *args) { unsigned int op = args[0]; trace_seq_printf(s, "%s", xen_hypercall_name(op)); return 0; }

Contributors

PersonTokensPropCommitsCommitProp
jiri olsajiri olsa42100.00%1100.00%
Total42100.00%1100.00%


int PEVENT_PLUGIN_LOADER(struct pevent *pevent) { pevent_register_print_function(pevent, process_xen_hypercall_name, PEVENT_FUNC_ARG_STRING, "xen_hypercall_name", PEVENT_FUNC_ARG_INT, PEVENT_FUNC_ARG_VOID); return 0; }

Contributors

PersonTokensPropCommitsCommitProp
jiri olsajiri olsa28100.00%1100.00%
Total28100.00%1100.00%


void PEVENT_PLUGIN_UNLOADER(struct pevent *pevent) { pevent_unregister_print_function(pevent, process_xen_hypercall_name, "xen_hypercall_name"); }

Contributors

PersonTokensPropCommitsCommitProp
namhyung kimnamhyung kim19100.00%1100.00%
Total19100.00%1100.00%


Overall Contributors

PersonTokensPropCommitsCommitProp
jiri olsajiri olsa53096.54%150.00%
namhyung kimnamhyung kim193.46%150.00%
Total549100.00%2100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}