aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/public/event_channel.h
Commit message (Collapse)AuthorAgeFilesLines
* evtchn: add FIFO-based event channel ABIDavid Vrabel2013-10-141-0/+75
| | | | | | | | | | | | | | | | | | | | | | | | | Add the event channel hypercall sub-ops and the definitions for the shared data structures for the FIFO-based event channel ABI. The design document for this new ABI is available here: http://xenbits.xen.org/people/dvrabel/event-channels-F.pdf In summary, events are reported using a per-domain shared event array of event words. Each event word has PENDING, LINKED and MASKED bits and a LINK field for pointing to the next event in the event queue. There are 16 event queues (with different priorities) per-VCPU. Key advantages of this new ABI include: - Support for over 100,000 events (2^17). - 16 different event priorities. - Improved fairness in event latency through the use of FIFOs. Signed-off-by: David Vrabel <david.vrabel@citrix.com> Reviewed-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org>
* Fix emacs local variable block to use correct C style variable.David Vrabel2013-02-211-1/+1
| | | | | | | The emacs variable to set the C style from a local variable block is c-file-style, not c-set-style. Signed-off-by: David Vrabel <david.vrabel@citrix.com
* hcall: markup the event channel hypercalls to improve generated docsIan Campbell2012-03-011-27/+55
| | | | | | | | | | As part of this I looked through the relevant chapter from interfaces.tex (from 4.1, deleted in unstable) to ensure no critical information was missing. Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Keir Fraser <keir@xen.org> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Jackson <ian.jackson@eu.citrix.com>
* Introduce mechanism to check standard conformance of headersKeir Fraser2009-06-171-0/+2
| | | | | | | | | | | While pretty simplistic, it appears to serve the purpose at the moment (i.e. it spotted two places where a GNU extension was used withou proper preprocessor conditionals). The "simplistic" here includes that the checking gets only done for native builds, and ia64 gets excluded due to its arch-specific header intentionally (for whatever reason) checking that anonymous struct/unions can be used. Signed-off-by: Jan Beulich <jbeulich@novell.com>
* [XEN] New event-channel reset operation.kfraser@localhost.localdomain2007-01-191-0/+13
| | | | | | | Plumbed through libxenctrl to python. From: Andrei Petrov <andrei.petrov@xensource.com> Signed-off-by: Keir Fraser <keir@xensource.com>
* [XEN] Put the non-GPL license text in each public header file.kaf24@localhost.localdomain2006-11-081-0/+18
| | | | | | | | | This excludes arch-powerpc.h and xencomm.h which require confirmation from the original authors that the existing GPL text can be removed and replaced. Original patch from: Mark Johnson <mark.johnson@sun.com> Signed-off-by: Keir Fraser <keir@xensource.com>
* Finish separating the typedefs from structure definitions in Xen public headers.kaf24@firebug.cl.cam.ac.uk2006-05-211-32/+43
| | | | | Signed-off-by: Chris Wright <chrisw@sous-sol.org>
* Define new event-channel and physdev hypercalls with a more extensiblekaf24@firebug.cl.cam.ac.uk2006-04-301-0/+11
| | | | | | | | | | | | interface (the legacy hypercalls would break if subcommands with large argument structures were added, as it would grow the size of the union of all argument structures). Also, based on a patch from Kevin Tian, add a new physdev op to signal EOI for a particular irq. Signed-off-by: Keir Fraser <keir@xensource.com>
* Rename *GUEST_HANDLE to *XEN_GUEST_HANDLE.kaf24@firebug.cl.cam.ac.uk2006-04-271-2/+2
| | | | | Signed-off-by: Hollis Blanchard <hollisb@us.ibm.com>
* Backtrack on the new interface for reserved event-channelkaf24@firebug.cl.cam.ac.uk2006-04-051-6/+12
| | | | | | | | | | | | ports, as binding them in user space via the evtchn driver would be a pain. Instead extend VIRQs so they can be classified as 'global' or 'per vcpu'. The former can only be allocated once per guest, but can be re-bound to an arbitrary VCPU. Signed-off-by: Keir Fraser <keir@xensource.com>
* Define a new sched_op hypercall called sched_op_new, which differs from thekaf24@firebug.cl.cam.ac.uk2006-03-141-0/+1
| | | | | | | | | | | | | | | | | | legacy hypercall in that it takes a pointer to a block of extra arguments rather than an opaque unsigned long. The old hypercall still exists, for backwards compatibility. The new hypercall supports new sub-command SCHEDOP_poll, which can be used to wait on a set of event-channel ports with an optional timeout. This is exported in XenLinux as HYPERVISOR_poll, and used in the pcifront driver to wait on a response from the pciback driver. Can also be used for debuggers. :-) Signed-off-by: Keir Fraser <keir@xensource.com> Signed-off-by: John Levon <john.levon@sun.com>
* Upgrade all hypercalls to use the new guest_handle interface (on the Xen side).kaf24@firebug.cl.cam.ac.uk2006-03-071-0/+1
| | | | | | Signed-off-by: Keir Fraser <keir@xensource.com>
* Fix unmask_evtchn() when the port is bound to a differentkaf24@firebug.cl.cam.ac.uk2005-12-131-0/+11
| | | | | | | | VCPU. Signed-off-by: Keir Fraser <keir@xensource.com>
* Define explicit evtchn_port_t type (32 bits) and plumb upkaf24@firebug.cl.cam.ac.uk2005-12-011-15/+17
| | | | | | | | to user space thru /dev/xen/evtchn. Signed-off-by: Keir Fraser <keir@xensource.com>
* Allow interdomain channels to bind DOMID_SELF to DOMID_SELF.kaf24@firebug.cl.cam.ac.uk2005-10-181-0/+3
| | | | | Signed-off-by: Steve King <steven.r.king@intel.com>
* Fix Xen public interfaces and the tools to consistentlykaf24@firebug.cl.cam.ac.uk2005-10-121-27/+37
| | | | | | | | use stdint-format bitsize types (uint32_t and friends). Signed-off-by: Keir Fraser <keir@xensource.com>
* Big simplification of the Xen event-channel interface.kaf24@firebug.cl.cam.ac.uk2005-10-071-37/+18
| | | | | | | | EVTCHNOP_bind_interdomain in particular is much simpler. Signed-off-by: Keir Fraser <keir@xensource.com>
* EVTCHNOP_alloc_unbound can allocate a port in an arbitrarykaf24@firebug.cl.cam.ac.uk2005-10-051-4/+6
| | | | | | | | domain (only if the caller is sufficiently privileged). Signed-off-by: Keir Fraser <keir@xensource.com>
* Allow EVTCHNOP_bind_{ipi,virq} to specify the vcpu tokaf24@firebug.cl.cam.ac.uk2005-10-041-4/+7
| | | | | | | | | bind to. Previously the alloacted port was implicitly bound to the calling vcpu. Signed-off-by: Keir Fraser <keir@xensource.com>
* Clean up Xen's event-channel interface, and semantics for bindingkaf24@firebug.cl.cam.ac.uk2005-07-081-9/+17
| | | | | | to VCPUs. Signed-off-by: Keir Fraser <keir@xensource.com>
* I updated the vcpu_to_cpu string creation to include a field separator,iap10@freefall.cl.cam.ac.uk2005-07-061-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | which gets rid of the -1 -> # hack and works for cpus > 9. I ran into some issues with stale vcpu_to_cpu lists when running the hotplug subprogram. I would take a vcpu offline, and then issue the command to bring it back and the vcpu_to_cpu list would not have changed to indicate the the vcpu actually went down. If I injected a xm list -v (which always showed the correct mapping) then subsequent hotplug commands would see the state change and fire off the hotplug request. I don't know that not sending the event when not changing state saves that much work so I took the state check out and now just send the hotplug event directly. > Also the whole hotplug stuff is still missing interrupt re-routing > when a vcpu is taken down. To do this, we need an evtchn operation to > change the vcpu affinity of a port by changing notify_vcpu_id. I don't fully understand all of the mappings that are happening, so this part of the patch might be way off. In any case, I've added a new evtchn op to set the notify_vcpu_id field of a channel. I updated the HOTPLUG_CPU code to use the new routines when bringing cpus up and down. When taking down a cpu, I route the IPI irq channels to CPU 0, and when the cpu comes up, it re-routes the channels back to the awakened CPU. From: Ryan Harper <ryanh@us.ibm.com> Signed-off-by: ian@xensource.com
* Remove non-ISO attributes from public headers.kaf24@firebug.cl.cam.ac.uk2005-07-021-54/+48
| | | | | Signed-off-by: Keir Fraser <keir@xensource.com>
* bitkeeper revision 1.1674 (42a2cfb9WFgnh2K4Xr5ev3pSEASVbw)kaf24@firebug.cl.cam.ac.uk2005-06-051-3/+4
| | | | | | | Extend EVTCHNOP_alloc_unbound to allocate a specified port, if non-zero value is passed in. Signed-off-by: Keir Fraser <keir@xensource.com>
* bitkeeper revision 1.1664.1.1 (42a08862ToP8uoeBgUzDwAQBMXo4wg)kaf24@firebug.cl.cam.ac.uk2005-06-031-15/+19
| | | | | | | | | | Event-channel CPU affinity. Currently all event channels still bind to VCPU#0 at start of day, and have their binding automatically changed when bound to a VIRQ or IPI source. XenLinux maintains a per-cpu evtchn mask denoting which event channels are bound to each cpu. Todo: Allow guests to change binding of of non-ipi and non-virq evtchns. Signed-off-by: Keir Fraser <keir@xensource.com>
* bitkeeper revision 1.1644.1.1 (429f749dKFzVUg9NXDMVu4apHJvpNQ)kaf24@firebug.cl.cam.ac.uk2005-06-021-2/+2
| | | | | | | The last annoying rename: struct exec_domain *ed -> struct vcpu *v Signed-off-by: Keir Fraser <keir@xensource.com>
* bitkeeper revision 1.1159.1.401 (41923739R6r2c-dNxHPSxOagRn-R3g)cl349@freefall.cl.cam.ac.uk2004-11-101-0/+15
| | | | | | Setup cpu-local interrupt handline. Add support for ipi event channels.
* bitkeeper revision 1.1159.142.4 (4184b6d4rc3Jd2irJimPyupm4TO06A)kaf24@freefall.cl.cam.ac.uk2004-10-311-0/+161
Rename Xen public interfaces. 1. hypervisor-if.h is now xen.h 2. hypervisor-ifs/ directory is now: <include/public/...> in Xen <asm/xen-public/...> in Linux <xen/...> in user space