History | View | Annotate | Download (1.4 kB)
msi/msix: added API to set MSI message address and data
Added (msi|msix)_set_message() function for whoever mightwant to use them.
Currently msi_notify()/msix_notify() write to these vectors tosignal the guest about an interrupt so the correct values have to...
msix: Switch msix_uninit to return void
It can't fail.
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
msix: Allow full specification of MSIX layout
Finally, complete the fully specified interface. msix_add_config()gets folded into msix_init() because we now have quite a few parametersto pass and rolling it in let's us error earlier, avoiding the uglyunwind exit path. msix_mmio_setup() also gets rolled in, just because...
msix: Add simple BAR allocation MSIX setup functions
msi_init() takes over a BAR without really specifying or allowingspecification of how it does so. Instead, let's split it intotwo interfaces, one fully specified, and one trivially easy. Thisimplements the latter. msix_init_exclusive_bar() takes over...
msix: drop unused msix_bar_size, require valid bar_size
No user in sight for msix_bar_size.bar_size for all users is aligned, let's simplyrequire this instead of trying to fix up invalid input.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
msix: fix PCIDevice naming inconsistency
msix.h calls the PCIDevice * parameter "dev" almost everywhere exceptthe msix_write_config declaration. Fix the inconsistency.
msix: Add msix_nr_vectors_allocated
Analogously to msi_nr_vectors_allocated, add a service for MSI-X. Willbe used by the virtio-pci layer.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>Signed-off-by: Avi Kivity <avi@redhat.com>
msix: Introduce vector notifiers
Vector notifiers shall be triggered by the MSI/MSI-X core whenever arelevant configuration change is programmed by the guest. In case ofMSI-X, changes are reported when the effective mask (global &&per-vector) alters its state. On unmask, the current vector...
msi: Generalize msix_supported to msi_supported
Rename msix_supported to msi_supported and control MSI and MSI-Xactivation this way. That was likely to original intention for thisflag, but MSI support came after MSI-X.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
msix: convert to memory API
The msix table is defined as a subregion, to allow for a BAR thatmixes device specific regions with the msix table.
Reviewed-by: Richard Henderson <rth@twiddle.net>Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>Signed-off-by: Avi Kivity <avi@redhat.com>...
msix: add helper to unuse all msix entries
will be used by virtio on soft reset
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
pci: introduce pcibus_t to represent pci bus address/size instead of uint32_t
This patch is preliminary for 64 bit BAR support.Introduce dedicated type, pcibus_t, to represent pci bus address/sizeinstead of uint32_t.Later this type will be changed to uint64_t....
qemu: clean up target page usage in msix
Since cpu_register_phys_memory does not require size to be a multiple oftarget page size, simply make msix page size 0x1000. Do this in msix,reverting part of 5e520a7d500ec2569d22d80f9ef4272a34cb3c80, as we nolonger have to pass target page around....
Revert "Get rid of _t suffix"
In the very least, a change like this requires discussion on the list.
The naming convention is goofy and it causes a massive merge problem. Somethinglike this must be presented on the list first so people can provide input...
Get rid of _t suffix
Some not so obvious bits, slirp and Xen were left alone for the timebeing.
Signed-off-by: malc <av1474@comtv.ru>
Compile msix only once
Get page size in device init.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
qemu/pci: MSI-X support functions
Add functions implementing MSI-X support. First user will be virtio-pci.Note that platform must set a flag to declare MSI supported: thisis a safety measure to avoid breaking platforms which should supportMSI-X but currently lack this in the interrupt controller emulation....