On Wed, Oct 29, 2008 at 11:58:59AM +0000, Daniel P. Berrange wrote: > The internal.h file also contains function signatures for a bunch of > APIs which are exported in the libvirt.so, but not part of the official > public API in libvirt/libvirt.h. Their impl is mostly in libvirt.c, > along with the aforementioned stuff from hash.c NACK. I really really dislike having internal header names conflicting with the public one. When one include libvirt.h, inernally or externally it should be clear what you're getting, and i want to remove any risk of not including the right header just by mistake. Use an intermediate set of files [.c .h], but libvirt.c should implement the public entry point of libvirt.h private entry points in libvirt.c should be kept minimal, no need to inflate the size of that file needlessly. Seems all those functions are really accessors for internal data, you can put them in accessors.[ch] , that won't change anything radical since you kept them public anyway : > +int > +virUnrefDomain(virDomainPtr domain) { Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list