On Tue, 2018-10-16 at 11:28 +0800, Yi Min Zhao wrote: > 在 2018/10/11 下午10:50, Andrea Bolognani 写道: > > On Fri, 2018-09-28 at 16:46 +0800, Yi Min Zhao wrote: > > > # conf/device_conf.h > > > +virDeviceInfoPCIAddressExtensionIsPresent; > > > +virDeviceInfoPCIAddressExtensionIsWanted; > > > virDeviceInfoPCIAddressIsPresent; > > > virDeviceInfoPCIAddressIsWanted; > > > virDomainDeviceAddressIsValid; > > > @@ -119,6 +121,9 @@ virDomainCCWAddressSetFree; > > > virDomainPCIAddressBusIsFullyReserved; > > > virDomainPCIAddressBusSetModel; > > > virDomainPCIAddressEnsureAddr; > > > +virDomainPCIAddressExtensionReleaseAddr; > > > +virDomainPCIAddressExtensionReserveAddr; > > > +virDomainPCIAddressExtensionReserveNextAddr; > > > > I'm not quite quire we need to export these functions. > > > > With the recent changes, we've gotten to the point that we're not > > even passing a virZPCIDeviceAddress to them, but rather they have > > the very same signature as the regular virPCIDeviceAddress... > > > > So it should be possible to just make them static and only call > > them from the virDomainPCIAddressReserveAddr() and friends, right? > > Which is where I was hoping we could eventually get. Or did I > > miss something? > > I think this would make things complex. If either PCI address or > zPCI address exists, we have to do more checks for calling > virDomainPCIAddressReserveAddr(). And there are amounts of > code calling ***IsWanted() to call ***ReserveNext***(). I think > keeping them separately is better. Again, I might be missing something because I haven't actually tried implementing any of this, but at least from the theoretical point of view I don't see how keeping them separate would make things simpler: if anything, it seems to me like it would make them more complicated for the calling code because now you have to worry about the PCI address extensions *in addition* to the PCI address itself. -- Andrea Bolognani / Red Hat / Virtualization -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list