One idea is similar to signalfd() or eventfd(). Provide a kvm ioctl
that takes a gsi and returns an fd. Writes to the fd change the state
of the line, possible triggering an interrupt. Another ioctl takes a
hypercall number or pio port as well as an existing fd. Invocations of
the hypercall or writes to the port write to the fd (using the same
protocol as eventfd), so the other end can respond.
The nice thing is that this can be used by both kernel and userspace
components, and for kernel components, hypercalls can be either buffered
or unbuffered.
No need for a string ID. Reserve a range of hypercall numbers for
dynamic IDs. Userspace allocates one and gives it to the device using
its configuration space (as applies to whatever bus it is using).
--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html