cregit-Linux how code gets into the kernel

Release 4.7 drivers/xen/fallback.c

Directory: drivers/xen
#include <linux/kernel.h>
#include <linux/string.h>
#include <linux/bug.h>
#include <linux/export.h>
#include <asm/hypervisor.h>
#include <asm/xen/hypercall.h>


int xen_event_channel_op_compat(int cmd, void *arg) { struct evtchn_op op; int rc; op.cmd = cmd; memcpy(&op.u, arg, sizeof(op.u)); rc = _hypercall1(int, event_channel_op_compat, &op); switch (cmd) { case EVTCHNOP_close: case EVTCHNOP_send: case EVTCHNOP_bind_vcpu: case EVTCHNOP_unmask: /* no output */ break; #define COPY_BACK(eop) \ case EVTCHNOP_##eop: \ memcpy(arg, &op.u.eop, sizeof(op.u.eop)); \ break COPY_BACK(bind_interdomain); COPY_BACK(bind_virq); COPY_BACK(bind_pirq); COPY_BACK(status); COPY_BACK(alloc_unbound); COPY_BACK(bind_ipi); #undef COPY_BACK default: WARN_ON(rc != -ENOSYS); break; } return rc; }

Contributors

PersonTokensPropCommitsCommitProp
jan beulichjan beulich128100.00%1100.00%
Total128100.00%1100.00%

EXPORT_SYMBOL_GPL(xen_event_channel_op_compat);
int xen_physdev_op_compat(int cmd, void *arg) { struct physdev_op op; int rc; op.cmd = cmd; memcpy(&op.u, arg, sizeof(op.u)); rc = _hypercall1(int, physdev_op_compat, &op); switch (cmd) { case PHYSDEVOP_IRQ_UNMASK_NOTIFY: case PHYSDEVOP_set_iopl: case PHYSDEVOP_set_iobitmap: case PHYSDEVOP_apic_write: /* no output */ break; #define COPY_BACK(pop, fld) \ case PHYSDEVOP_##pop: \ memcpy(arg, &op.u.fld, sizeof(op.u.fld)); \ break COPY_BACK(irq_status_query, irq_status_query); COPY_BACK(apic_read, apic_op); COPY_BACK(ASSIGN_VECTOR, irq_op); #undef COPY_BACK default: WARN_ON(rc != -ENOSYS); break; } return rc; }

Contributors

PersonTokensPropCommitsCommitProp
jan beulichjan beulich121100.00%2100.00%
Total121100.00%2100.00%

EXPORT_SYMBOL_GPL(xen_physdev_op_compat);

Overall Contributors

PersonTokensPropCommitsCommitProp
jan beulichjan beulich277100.00%2100.00%
Total277100.00%2100.00%
Directory: drivers/xen
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}