On Fri, Feb 06, 2009 at 11:13:37AM -0500, John Levon wrote: > On Fri, Feb 06, 2009 at 11:09:31AM +0000, Daniel P. Berrange wrote: > > > On Fri, Feb 06, 2009 at 09:53:04AM +0000, Gihan Munasinghe wrote: > > > Is there a specific reason for not having a "free_memory" with in the > > > "virNodeInfo" structure. > > > > All public structures are part of the public ABI and channot > > be changed once added. virNodeInfo existed long before the > > free memory API came about, hence its not present there. > > Can I get a clarification about adding to the end of such structures? > Often APIs do this with an explicit warning not to embed structures, > take sizeof() etc. The other usual choice is to make the structure > really opaque and provide accessors behind functions. We've used a mix of techniques - the virDomain/Network/Storage structs are all opaque. The Interface/Block stats ones allow for sizeof(). The others are all fixed. > If we don't do either, I'd be very worried by at least > virDomainInterfaceStatsStruct, virDomainBlockStatsStruct, > virNodeInfo, virVcpuInfo. We'll surely end up with a proliferation of > virFoo2() calls for virFoo2Structs. The interface/block stats functions both take a sizeof() parameter to allow possible extension. NodeInfo/VcpuInfo do not. Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list