libvirt internals

This section provides documents useful to those working on the libvirt internals, adding new public APIs, new hypervisor drivers or extending the libvirtd daemon code.

Before adding new code it will be important to get a basic understanding of the many elements involved with making any call or change to the libvirt code. The architecture goals must be adhered to when submitting new code. Understanding the many places that need to be touched and the interactions between various subsystems within libvirt will directly correlate to the ability to be successful in getting new code accepted.

The following diagram depicts code flow from a client application, in this case the libvirt provided virsh command through the various layers to elicit a response from some chosen hypervisor.

virConnectOpen calling sequence