From 2631fe0420df6e4570fd8272f84ff4c29e009575 Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Sat, 16 Feb 2013 07:43:31 -0500 Subject: [PATCH] internals: Update to include RPC and Lock links and add new data Added a picture and explanation describing the virConnectOpen processing at a "higher" level, but with some source code references. --- docs/internals.html.in | 102 ++++++++++++++++++++++++++-- docs/libvirt-virConnect-example.fig | 58 ++++++++++++++++ docs/libvirt-virConnect-example.png | Bin 0 -> 10464 bytes 3 files changed, 156 insertions(+), 4 deletions(-) create mode 100644 docs/libvirt-virConnect-example.fig create mode 100644 docs/libvirt-virConnect-example.png diff --git a/docs/internals.html.in b/docs/internals.html.in index 5689998d07..90143effdc 100644 --- a/docs/internals.html.in +++ b/docs/internals.html.in @@ -9,12 +9,106 @@

+

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 +

+ diff --git a/docs/libvirt-virConnect-example.fig b/docs/libvirt-virConnect-example.fig new file mode 100644 index 0000000000..3d58411f5e --- /dev/null +++ b/docs/libvirt-virConnect-example.fig @@ -0,0 +1,58 @@ +#FIG 3.2 Produced by xfig version 3.2.5b +Landscape +Center +Inches +Letter +100.00 +Single +-2 +1200 2 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 450 375 4575 375 4575 1725 450 1725 450 375 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 1125 2475 4950 2475 4950 3600 1125 3600 1125 2475 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 0 1.00 60.00 120.00 + 1725 1725 2175 2475 +2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 3150 5700 6525 5700 6525 6900 3150 6900 3150 5700 +2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 7875 6825 10125 6825 10125 7725 7875 7725 7875 6825 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 2550 4725 10350 4725 10350 7800 2550 7800 2550 4725 +2 2 0 1 0 7 50 -1 -1 0.000 0 0 7 0 0 5 + 8850 1950 11550 1950 11550 3360 8850 3360 8850 1950 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 0 1.00 60.00 120.00 + 3975 3600 5025 4425 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 0 1.00 60.00 120.00 + 8925 3225 5400 4425 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 2 + 1 0 1.00 60.00 120.00 + 5625 6900 7875 7425 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 3 + 1 0 1.00 60.00 120.00 + 11400 3375 11400 7575 10125 7575 +2 2 0 2 0 7 50 -1 -1 0.000 0 0 -1 0 0 5 + 8400 975 12450 975 12450 4125 8400 4125 8400 975 +2 1 0 1 0 7 50 -1 -1 0.000 0 0 -1 1 0 6 + 1 0 1.00 60.00 120.00 + 10125 7125 10725 7125 10725 4425 7725 4425 7725 2700 8850 2700 +4 0 0 50 -1 16 12 0.0000 4 180 2430 1350 2895 virConnectOpenReadOnly(uri)\001 +4 0 0 50 -1 16 12 0.0000 4 180 3240 1350 3090 virConnectOpenAuth(uri, auth, flags)\001 +4 0 0 50 -1 0 12 0.0000 4 165 1350 3300 5850 virConnectOpen:\001 +4 0 0 50 -1 0 12 0.0000 4 165 2070 3300 6045 virConnectOpenReadOnly:\001 +4 0 0 50 -1 0 12 0.0000 4 165 1710 3300 6240 virConnectOpenAuth:\001 +4 0 0 50 -1 0 12 0.0000 4 180 900 3975 6600 do_open():\001 +4 0 0 50 -1 0 14 0.0000 4 135 1260 8025 7125 Rremote driver\001 +4 0 0 50 -1 16 24 0.0000 4 135 630 5025 4650 libvirt\001 +4 0 0 50 -1 0 14 0.0000 4 180 1890 9000 2175 remoteDispatchOpen():\001 +4 0 0 50 -1 0 12 0.0000 4 45 270 9300 2475 ...\001 +4 0 0 50 -1 0 12 0.0000 4 180 1440 9300 2670 virConnectOpen()\001 +4 0 0 50 -1 0 12 0.0000 4 180 2160 9300 2865 virConnectOpenReadOnly()\001 +4 0 0 50 -1 0 12 0.0000 4 45 270 9300 3060 ...\001 +4 0 0 50 -1 0 12 0.0000 4 180 1080 8250 7350 remoteOpen()\001 +4 0 0 50 -1 16 16 0.0000 4 165 3240 600 1050 "virsh -c qemu:///system list --all"\001 +4 0 0 50 -1 16 12 0.0000 4 180 1710 1350 2700 virConnectOpen(uri)\001 +4 0 0 50 -1 16 24 0.0000 4 135 720 9750 825 libvirtd\001 diff --git a/docs/libvirt-virConnect-example.png b/docs/libvirt-virConnect-example.png new file mode 100644 index 0000000000000000000000000000000000000000..ae9c65ba01ef574c59f11d75c7d959b53a02ee2b GIT binary patch literal 10464 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 dDEKD|{)vMBzoTFrs_Vk~tt;K-