From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:54494) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SfEaE-0003in-Cm for qemu-devel@nongnu.org; Thu, 14 Jun 2012 14:15:51 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SfEaB-0007eT-TP for qemu-devel@nongnu.org; Thu, 14 Jun 2012 14:15:49 -0400 Received: from mx1.redhat.com ([209.132.183.28]:53083) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SfEaB-0007e3-GF for qemu-devel@nongnu.org; Thu, 14 Jun 2012 14:15:47 -0400 From: Alex Williamson Date: Thu, 14 Jun 2012 12:15:42 -0600 Message-ID: <20120614181104.23440.62204.stgit@bling.home> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] [PATCH v3 0/8] msix: Support specifying offsets, BARs, and capability location List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: mst@redhat.com Cc: jan.kiszka@siemens.com, qemu-devel@nongnu.org v3: - more patches, smaller diff, must be headed in the right direction - macros for all hardcoded values in msix_init_exclusive_bar - fold msix_add_config into msix_init allowing less churn to moving around msix_uninit - note native endian bug - split msix_mmio_read move to separate patch - split changing return value of msix_uninit to separate patch Thanks, Alex v2: - split patch - rename msix_[un]init_bar() to msix_[un]init_exclusive_bar() - add the cherry on top to cleaning up PCIDevice naming v1: msix_init has very little configurability as to how it lays out MSIX for a device. It claims to resize BARs, but doesn't actually do this anymore. This patch allows MSIX to be fully specified, which is necessary both for emulated devices trying to match the physical layout of a hardware device as well as for any kind of device assignment. New functions msix_init_bar & msix_uninit_bar provide wrappers around the more detailed functions for drivers that just want a simple MSIX setup. --- Alex Williamson (8): msix: Switch msix_uninit to return void msix: Allow full specification of MSIX layout msix: Split PBA into it's own MemoryRegion msix: Note endian TODO item msix: Move msix_mmio_read virtio: Convert to msix_init_exclusive_bar() interface ivshmem: Convert to msix_init_exclusive_bar() interface msix: Add simple BAR allocation MSIX setup functions hw/ivshmem.c | 10 +- hw/msix.c | 271 +++++++++++++++++++++++++++++++------------------------ hw/msix.h | 13 ++- hw/pci.h | 12 ++ hw/virtio-pci.c | 15 +-- hw/virtio-pci.h | 1 6 files changed, 176 insertions(+), 146 deletions(-)