On Wed, Jun 08, 2011 at 11:18:05PM +0200, Jan Kiszka wrote: > On 2011-06-08 23:14, Michael S. Tsirkin wrote: > > On Wed, Jun 08, 2011 at 11:03:43PM +0200, Jan Kiszka wrote: > >> On 2011-06-08 23:01, Michael S. Tsirkin wrote: > >>> On Wed, Jun 08, 2011 at 10:57:13PM +0200, Jan Kiszka wrote: > >>>> On 2011-06-08 22:56, Michael S. Tsirkin wrote: > >>>>> On Wed, Jun 08, 2011 at 10:44:58PM +0200, Jan Kiszka wrote: > >>>>>> On 2011-06-08 21:48, Michael S. Tsirkin wrote: > >>>>>>> On Wed, Jun 08, 2011 at 06:21:52PM +0200, Jan Kiszka wrote: > >>>>>>>> Signed-off-by: Jan Kiszka <jan.kis...@siemens.com> > >>>>>>> > >>>>>>> pci_regs.h from linux does not have these > >>>>>>> this is why we keep them in msi.c > >>>>>>> > >>>>>>> [mst@tuck linux-2.6]$ grep PCI_MSI_ include/linux/pci_regs.h > >>>>>>> #define PCI_MSI_FLAGS 2 /* Various flags */ > >>>>>>> #define PCI_MSI_FLAGS_64BIT 0x80 /* 64-bit addresses allowed */ > >>>>>>> #define PCI_MSI_FLAGS_QSIZE 0x70 /* Message queue size > >>>>>>> configured > >>>>>>> */ > >>>>>>> #define PCI_MSI_FLAGS_QMASK 0x0e /* Maximum queue size > >>>>>>> available > >>>>>>> */ > >>>>>>> #define PCI_MSI_FLAGS_ENABLE 0x01 /* MSI feature enabled */ > >>>>>>> #define PCI_MSI_FLAGS_MASKBIT 0x100 /* 64-bit mask bits allowed */ > >>>>>>> #define PCI_MSI_RFU 3 /* Rest of capability flags */ > >>>>>>> #define PCI_MSI_ADDRESS_LO 4 /* Lower 32 bits */ > >>>>>>> #define PCI_MSI_ADDRESS_HI 8 /* Upper 32 bits (if > >>>>>>> PCI_MSI_FLAGS_64BIT set) */ > >>>>>>> #define PCI_MSI_DATA_32 8 /* 16 bits of data for 32-bit > >>>>>>> devices */ > >>>>>>> #define PCI_MSI_MASK_32 12 /* Mask bits register for > >>>>>>> 32-bit > >>>>>>> devices */ > >>>>>>> #define PCI_MSI_DATA_64 12 /* 16 bits of data for 64-bit > >>>>>>> devices */ > >>>>>>> #define PCI_MSI_MASK_64 16 /* Mask bits register for > >>>>>>> 64-bit > >>>>>>> devices */ > >>>>>>> > >>>>>>> > >>>>>>> If you want to move them, please send them upstream we'll merge when > >>>>>>> they are there. > >>>>>> > >>>>>> In fact, both defines are already in libpci. Since 3.0.0. Released 5 > >>>>>> years ago. OK, I'll send a header resync patch against a more recent > >>>>>> release. > >>>>>> > >>>>>> Then we should just lack something like PCI_MSIX_CTRL. I will have a > >>>>>> look. > >>>>> > >>>>> PCI_MSIX_FLAGS is the same. > >>>> > >>>> That does not exist in libpci's header. > >>>> > >>>> Jan > >>>> > >>> > >>> The upstream I meant is pci_Regs.h in Linux. > >>> > >> > >> Why not sync against > >> git://git.kernel.org/pub/scm/utils/pciutils/pciutils.git? Sounds more > >> appropriate. > >> > >> Jan > >> > > > > We are 100% aligned with Linux changing that seems pointless. > > I think Linux gets new hardware features faster and has a better > > chance to be correct. > > We already pull headers from Linux so that's one dependency less. > > > > The kernel appears to gain defines based on what it uses.
I don't expect trouble adding stuff we might need though. > The libpci > headers seem to serve more use cases, at least it had the missing fields > for several years and is a few hundred lines longer. > > Jan > Some defines got into Linux already, specifically MSIX_TABLE_OFFSET, MSIX_PBA_OFFSET (with different names) -- MST