[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-API] [PATCH 3 of 3] [ocamldoc] Grouping modules in the module list


  • To: xen-api@xxxxxxxxxxxxxxxxxxx
  • From: Rob Hoes <rob.hoes@xxxxxxxxxx>
  • Date: Fri, 20 Nov 2009 16:14:35 +0000
  • Delivery-date: Fri, 20 Nov 2009 08:16:38 -0800
  • List-id: Discussion of API issues surrounding Xen <xen-api.lists.xensource.com>

# HG changeset patch
# User Rob Hoes <rob.hoes@xxxxxxxxxx>
# Date 1258733582 0
# Node ID 20aebb18dd9cf88eba1f0064842001b4074c8e39
# Parent  d6396c0904fc68123455e5a4738c7d7b096cce69
[ocamldoc] Grouping modules in the module list

Introduced a custom tag "@group" to ocamldoc. Modules having the same @group 
tag in the first ocamldoc comment of the module are grouped together under the 
same heading in the module list.

I started adding @group tags to the modules in the xapi executable. This is not 
finished yet, and I am hoping someone will help me to finish this task and iron 
out inconsistencies... ;)

Signed-off-by: Rob Hoes <rob.hoes@xxxxxxxxxx>

diff -r d6396c0904fc -r 20aebb18dd9c ocaml/auth/auth_signature.ml
--- a/ocaml/auth/auth_signature.ml      Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/auth/auth_signature.ml      Fri Nov 20 16:13:02 2009 +0000
@@ -11,9 +11,12 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-
-(* 
+(**
  * Interface for External Authentication Plugin component
+ * @group Access Control
+ *)
+ 
+(*
  * v1 22Oct08
  *
 *)
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/auth/authx.ml
--- a/ocaml/auth/authx.ml       Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/auth/authx.ml       Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Access Control
+ *)
+ 
 module D = Debug.Debugger(struct let name="extauth_plugin_PAM_NSS" end)
 open D
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/auth/extauth.ml
--- a/ocaml/auth/extauth.ml     Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/auth/extauth.ml     Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Access Control
+ *)
+ 
 open Db_actions
 open Auth_signature
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/auth/extauth_plugin_ADlikewise.ml
--- a/ocaml/auth/extauth_plugin_ADlikewise.ml   Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/auth/extauth_plugin_ADlikewise.ml   Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Access Control
+ *)
+
 module D = Debug.Debugger(struct let name="extauth_plugin_ADlikewise" end)
 open D
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/auth/parse_likewise.ml
--- a/ocaml/auth/parse_likewise.ml      Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/auth/parse_likewise.ml      Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-
+(**
+ * @group Access Control
+ *)
+ 
 type result = 
   | Success of (string * string) list
   | Failure of int * string
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/doc/ocamldoc.js
--- a/ocaml/doc/ocamldoc.js     Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/doc/ocamldoc.js     Fri Nov 20 16:13:02 2009 +0000
@@ -315,7 +315,7 @@
 
 function comment(m)
 {
-       append_content('<div>' + transform_links(m) + '</div>');
+       append_content('<div class="comment">' + transform_links(m) + '</div>');
 }
 
 function parse_structure(structure)
@@ -456,27 +456,80 @@
 
 function module_index()
 {      
+       modules = component_modules[component];
+       groups = {};
+       other = [];
+       for (j in modules) {
+               name = modules[j].name;
+               stat = Math.round(100 * (modules[j].compl_descr_cnt / 
modules[j].descr_cnt));
+               group = "";
+               description = '<span class="empty">to be completed!</span>';
+               if (modules[j].info != undefined) {
+                       info = modules[j].info;
+                       if (info.group != undefined && info.group != "")
+                               group = info.group;
+                       
+                       if (info.description != undefined && info.description 
!= "") {
+                               description = info.description;
+                               if ((i = description.indexOf('.')) > -1)
+                                       description = description.substr(0, i);
+                       }
+               }
+               m = {"name": name, "description": description, "stat": stat};
+               if (group != "") {
+                       if (groups[group] == undefined)
+                               groups[group] = []
+                       groups[group].push(m)
+               }
+               else
+                       other.push(m)
+       }
+       
+       function print_group(n, g)
+       {
+               if (n != "")
+                       html += '<h2><a style="text-decoration: none" name="' + 
n + '" />' + n + '</a></h2>';
+               html += '<table><tr><th>Module</th><th>Description</th></tr>\n';
+               for (j in g) {
+                       m = g[j];
+                       html += '<tr><td width="30%"><a href="?c=' + component 
+ '&m=' + m.name + '">' + m.name + '</a>';
+                       html += ' <span class="stat">(' + m.stat + 
'\%)</span></td>\n';
+                       html += '<td>' + m.description + '</td></tr>';
+               }
+               html += '</table>\n';
+       }
+
        html = "";
        html += '<h1 class="title">List of Modules: ' + component + '</h1>\n';
-       html += '<table><tr><th>Module</th><th>Description</th></tr>\n';
-       modules = component_modules[component];
-       for (j in modules) {
-               html += '<tr><td><a href="?c=' + component + '&m=' + 
modules[j].name + '">' + modules[j].name + '</a>';
-               html += ' <span class="stat">(' + Math.round(100 * 
(modules[j].compl_descr_cnt / modules[j].descr_cnt)) + '\%)</span></td>\n';
-               if (modules[j].description != "") {
-                       d = modules[j].description;
-                       if ((i = d.indexOf('.')) > -1)
-                               d = d.substr(0, i);
-                       html += '<td>' + d + '.</td></tr>\n';
-               }
-               else
-                       html += '<td><span class="empty">to be 
completed!</span></td></tr>';
-       }
-       html += '</table>\n';
+       group_names = [];
+       for (k in groups)
+               group_names.push(k);
+       group_names.sort();
+       for (i in group_names)
+               print_group(group_names[i], groups[group_names[i]]);
+       if (group_names.length > 0)
+               other_name = "Other";
+       else
+               other_name = "";
+       if (other.length > 0)
+               print_group(other_name, other);
+       
        html += '<p class="stat">The percentages indicate how much of the 
source has been documented.</p>'
        set_content(html);
        
-       html = '<h2 class="title">Dependencies</h2>';
+       // Sidebar
+       
+       html = '<h2 class="title">Module Groups</h2>';
+       if (group_names.length > 0) {
+               for (i in group_names)
+                       html += '<a href="#' + group_names[i] + '">' + 
group_names[i] + '</a><br />';
+               if (other.length > 0)
+                       html += '<a href="#Other">Other</a><br />';
+       }
+       else
+               html += 'no groups';
+               
+       html += '<h2>Dependencies</h2>';
        deps = component_deps[component];
        
        libs = deps.libs;
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/doc/odoc_json.ml
--- a/ocaml/doc/odoc_json.ml    Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/doc/odoc_json.ml    Fri Nov 20 16:13:02 2009 +0000
@@ -468,19 +468,13 @@
                | None -> []
                | Some t -> ["return", String (print_t_list (self#t_of_text t))]
                in
-               let customs = match List.map self#json_of_custom i.i_custom with
-               | [] -> []
-               | l -> ["customs", Array l]
-               in
+               let customs = List.map (fun (tag, t) -> tag, String 
(print_t_list (self#t_of_text t))) i.i_custom in
                Object (desc @ authors @ version @ see @ since @ dep @ params @ 
raised @ return_v @ customs)
                
        method json_of_see = function
        | (See_url s, t) -> Object ["url", String s; "text", String 
(print_t_list (self#t_of_text t))]
        | (See_file s, t) -> Object ["file", String s; "text", String 
(print_t_list (self#t_of_text t))]
        | (See_doc s, t) -> Object ["doc", String s; "text", String 
(print_t_list (self#t_of_text t))]
-               
-       method json_of_custom (tag, t) =
-               Object ["custom", String tag; "text", String (print_t_list 
(self#t_of_text t))]
 
        method json_of_raised_exception (s, t) =
                Object ["raised_exception", String s; "text", String 
(print_t_list (self#t_of_text t))]
@@ -535,11 +529,7 @@
                        let make_record = function
                        | (name, Object ["module", Object m], (dc, cdc)) ->
                                let info = List.assoc "info" m in
-                               let descr = match info with
-                               | Object ["description", d] -> d
-                               | _ -> Empty
-                               in
-                               Object ["name", String name; "description", 
descr; "descr_cnt", Number dc; "compl_descr_cnt", Number cdc]
+                               Object ["name", String name; "info", info; 
"descr_cnt", Number dc; "compl_descr_cnt", Number cdc]
                        | _ -> Empty
                        in
                        let modules = Array (List.map make_record ml) in
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/doc/style.css
--- a/ocaml/doc/style.css       Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/doc/style.css       Fri Nov 20 16:13:02 2009 +0000
@@ -98,12 +98,12 @@
 
 h1 {
        font-size: 200%;
-       margin-top: 1em;
+       margin-top: 1.2em;
 }
 
 h2 {
        font-size : 150%;
-       margin: .8em 0 .5em;
+       margin: 1em 0 .5em;
 }
 
 h3 {
@@ -210,6 +210,14 @@
        font-family: Courier New, monospace;
 }
 
+.comment {
+       margin: 1em 0;
+}
+
+.comment br {
+       margin-bottom: .5em;
+}
+
 .field, .field2
 {
        margin: 0em 0;
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/license/license.mli
--- a/ocaml/license/license.mli Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/license/license.mli Fri Nov 20 16:13:02 2009 +0000
@@ -11,8 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-
-(** Module that keeps track of licenses and related matter *)
+(** Module that keeps track of licenses and related matter
+ * @group Licensing
+ *)
 
 (** Type for holding all details about a license *)
 type license =
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/license/restrictions.mli
--- a/ocaml/license/restrictions.mli    Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/license/restrictions.mli    Fri Nov 20 16:13:02 2009 +0000
@@ -11,8 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-
-(** Module that controls license entitlements *)
+(** Module that controls license entitlements
+ * @group Licensing
+ *)
 
 (** Licensing mode *)
 type sku = Express | Enterprise
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/license/v6client.mli
--- a/ocaml/license/v6client.mli        Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/license/v6client.mli        Fri Nov 20 16:13:02 2009 +0000
@@ -11,9 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-
 (** Client module to handle v6 licenses with the v6 licensing daemon.
- *  V6 licenses enable the features of Citrix Essentials for XenServer. *)
+ *  V6 licenses enable the features of Citrix Essentials for XenServer.
+ * @group Licensing
+ *)
 
 (** {2 State variables} *)
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/api_server.ml
--- a/ocaml/xapi/api_server.ml  Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/api_server.ml  Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(** The main callback function *)
+(** The main callback function.
+ * @group API Messaging
+ *)
 
 (** Actions module *)
 module Actions = struct
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/cli_cmdtable.ml
--- a/ocaml/xapi/cli_cmdtable.ml        Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/cli_cmdtable.ml        Fri Nov 20 16:13:02 2009 +0000
@@ -10,6 +10,9 @@
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
+ *)
+(** 
+ * @group Command-Line Interface (CLI)
  *)
 
 type op =        
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/cli_frontend.ml
--- a/ocaml/xapi/cli_frontend.ml        Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/cli_frontend.ml        Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** 
+ * @group Command-Line Interface (CLI)
+ *)
+ 
 (* ----------------------------------------------------------------------
    XE-CLI Front End
    ---------------------------------------------------------------------- *)
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/cli_key.ml
--- a/ocaml/xapi/cli_key.ml     Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/cli_key.ml     Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** 
+ * @group Command-Line Interface (CLI)
+ *)
+ 
 let force="force"
 let live="live"
 let internal="internal"
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/cli_operations.ml
--- a/ocaml/xapi/cli_operations.ml      Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/cli_operations.ml      Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** 
+ * @group Command-Line Interface (CLI)
+ *)
+ 
 open Cli_protocol
 open Cli_util
 open Cli_cmdtable
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/cli_operations_geneva.ml
--- a/ocaml/xapi/cli_operations_geneva.ml       Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/cli_operations_geneva.ml       Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** 
+ * @group Command-Line Interface (CLI)
+ *)
+ 
 (* Backwards compatible CLI operations *)
 
 (* These are mostly list functions - operations that do things *)
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/cli_printer.ml
--- a/ocaml/xapi/cli_printer.ml Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/cli_printer.ml Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** 
+ * @group Command-Line Interface (CLI)
+ *)
+ 
 open Cli_util
 open Cli_protocol
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/cli_protocol.ml
--- a/ocaml/xapi/cli_protocol.ml        Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/cli_protocol.ml        Fri Nov 20 16:13:02 2009 +0000
@@ -10,6 +10,9 @@
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
+ *)
+(** 
+ * @group Command-Line Interface (CLI)
  *)
 
 (** Used to ensure that we actually are talking to a thin CLI server *)
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/cli_util.ml
--- a/ocaml/xapi/cli_util.ml    Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/cli_util.ml    Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** 
+ * @group Command-Line Interface (CLI)
+ *)
+ 
 module D = Debug.Debugger(struct let name = "cli" end)
 open D
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/create_misc.ml
--- a/ocaml/xapi/create_misc.ml Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/create_misc.ml Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(** Create miscellaneous DB records needed by both the real and fake servers *)
+(** Create miscellaneous DB records needed by both the real and fake servers.
+ * @group Database Operations
+ *)
 
 open Xapi_vm_memory_constraints
 open Vm_memory_constraints
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/create_networks.ml
--- a/ocaml/xapi/create_networks.ml     Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/create_networks.ml     Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(* Built-in networks *)
+(** Built-in networks.
+ * @group Networking
+ *)
 
 module D=Debug.Debugger(struct let name="xapi" end)
 open D
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/create_storage.ml
--- a/ocaml/xapi/create_storage.ml      Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/create_storage.ml      Fri Nov 20 16:13:02 2009 +0000
@@ -11,8 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(** Use the API to register a set of default SRs with the server. *)
-
+(** Use the API to register a set of default SRs with the server.
+ * @group Storage
+ *)
+ 
 open Client
 module D=Debug.Debugger(struct let name="xapi" end)
 open D
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/create_templates.ml
--- a/ocaml/xapi/create_templates.ml    Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/create_templates.ml    Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(* Code to create a set of built-in templates (eg on the fakeserver) *)
+(** Code to create a set of built-in templates (eg on the fakeserver).
+ * @group Virtual-Machine Management
+ *)
 
 open API
 open Xapi_templates
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/db.ml
--- a/ocaml/xapi/db.ml  Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/db.ml  Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Database Operations
+ *)
+ 
 include Db_actions.DB_Action
 let is_valid_ref r =
        Db_cache.DBCache.is_valid_ref (Ref.string_of r)
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/db_gc.ml
--- a/ocaml/xapi/db_gc.ml       Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/db_gc.ml       Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Database Operations
+ *)
+ 
 open API
 open Listext
 open Threadext
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/dbsync.ml
--- a/ocaml/xapi/dbsync.ml      Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/dbsync.ml      Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Main Loop and Start-up
+ *)
+ 
 open Printf
 
 module D=Debug.Debugger(struct let name="dbsync" end)
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/dbsync_master.ml
--- a/ocaml/xapi/dbsync_master.ml       Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/dbsync_master.ml       Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Main Loop and Start-up
+ *)
+ 
 module D=Debug.Debugger(struct let name="dbsync" end)
 open D
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/dbsync_slave.ml
--- a/ocaml/xapi/dbsync_slave.ml        Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/dbsync_slave.ml        Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Main Loop and Start-up
+ *)
+ 
 open Stringext
 open Listext
 open Printf
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/ds.ml
--- a/ocaml/xapi/ds.ml  Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/ds.ml  Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(* data source *)
+(** Data source
+ * @group Performance Monitoring
+ *)
 
 (** This is used both for updating the DSs and for creating them *)
 type ds = { ds_name: string;
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/export.ml
--- a/ocaml/xapi/export.ml      Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/export.ml      Fri Nov 20 16:13:02 2009 +0000
@@ -11,29 +11,27 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(* Code to output a subset of database records, marshalled in XMLRPC format *)
-
-(* The general plan:
- *
- * 1. Walk around the database and select the objects you want (see 
'create_table')
- *    and make a table mapping internal ref -> fresh external references. It 
would
- *    be nice to generate a visitor thingimy for this.
- * 
- * 2. Select all the objects from each class, filter the subset you want (ie 
those whose
- *    reference exists as a key in the table) and convert them into instances 
of the 
- *    intermediate record 'type obj' via the functions 
make_{vm,sr,vbd,vif,network}.
- *
- *    The created 'obj record' includes the class name as a string (from the 
datamodel), 
- *    the fresh reference and the output of 'get_record' marshalled using the 
standard 
- *    XMLRPC functions with all the references converted either to the fresh 
external refs
- *    or NULL (so we aim not to export dangling pointers)
- * 
- * 3. Write out one big XML file containing an XMLRPC struct which has keys:
- *    version -> a structure of system version info (API versions, internal 
build numbers)
- *    state -> an XMLRPC array of XMLRPC serialised 'obj' records (see 
'xmlrpc_of_obj')
+(** Code to output a subset of database records, marshalled in XMLRPC format
+ * @group Import and Export
  *)
 
-(* The specific plan for VM export:
+(** The general plan:
+  + Walk around the database and select the objects you want (see 
'create_table')
+     and make a table mapping internal ref -> fresh external references. It 
would
+     be nice to generate a visitor thingimy for this.  
+  + Select all the objects from each class, filter the subset you want (ie 
those whose
+     reference exists as a key in the table) and convert them into instances 
of the 
+     intermediate record 'type obj' via the functions 
make_{vm,sr,vbd,vif,network}.
+     The created 'obj record' includes the class name as a string (from the 
datamodel), 
+     the fresh reference and the output of 'get_record' marshalled using the 
standard 
+     XMLRPC functions with all the references converted either to the fresh 
external refs
+     or NULL (so we aim not to export dangling pointers)
+  + Write out one big XML file containing an XMLRPC struct which has keys:
+     version -> a structure of system version info (API versions, internal 
build numbers)
+     state -> an XMLRPC array of XMLRPC serialised 'obj' records (see 
'xmlrpc_of_obj')
+ *)
+
+(** The specific plan for VM export:
    Walk over the datamodel and mark VIFs, Networks connected to the VIFs, 
VBDs, VDIs connected
    to the VBDs, SRs connected to the VDIs (and maybe a suspend image?). *)
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/import.ml
--- a/ocaml/xapi/import.ml      Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/import.ml      Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(* HTTP handler for importing a VM from a stream *)
+(** HTTP handler for importing a VM from a stream.
+ * @group Import and Export
+ *)
 
 module D=Debug.Debugger(struct let name="import" end)
 open D
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/import_raw_vdi.ml
--- a/ocaml/xapi/import_raw_vdi.ml      Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/import_raw_vdi.ml      Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(* HTTP handler for importing a raw VDI *)
+(** HTTP handler for importing a raw VDI.
+ * @group Import and Export
+ *)
 
 module D=Debug.Debugger(struct let name="import" end)
 open D
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/import_xva.ml
--- a/ocaml/xapi/import_xva.ml  Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/import_xva.ml  Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(* Import code specific to Zurich/Geneva-style XVA VM exports *)
+(** Import code specific to Zurich/Geneva-style XVA VM exports
+ * @group Import and Export
+ *)
 
 open Stringext
 open Http
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/importexport.ml
--- a/ocaml/xapi/importexport.ml        Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/importexport.ml        Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(* Common definitions and functions shared between the import and export code 
*)
+(** Common definitions and functions shared between the import and export code.
+ * @group Import and Export
+ *)
 
 (** Represents a database record (the reference gets converted to a small 
string) *)
 type obj = { cls: string; id: string; snapshot: XMLRPC.xmlrpc }
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/license_check.mli
--- a/ocaml/xapi/license_check.mli      Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/license_check.mli      Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,11 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** 
+ * Verifying whether the current license is still valid
+ * @group Licensing
+ *)
+ 
 val vm : __context:'a -> API.ref_VM -> unit
 
 val with_vm_license_check : __context:'a -> [`VM] Ref.t -> (unit -> 'b) -> 'b 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/memory_check.mli
--- a/ocaml/xapi/memory_check.mli       Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/memory_check.mli       Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Memory Management
+ *)
+ 
 (**
        The Pool master's view of the total memory and memory consumers on a 
host.
        This doesn't take into account dynamic changes i.e. those caused by
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/memory_control.mli
--- a/ocaml/xapi/memory_control.mli     Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/memory_control.mli     Fri Nov 20 16:13:02 2009 +0000
@@ -11,13 +11,17 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(* We need to cope with multiple threads attempting to allocate chunks of 
memory to start
+(**
+ * @group Memory Management
+ *)
+ 
+(** We need to cope with multiple threads attempting to allocate chunks of 
memory to start
    or resume VMs.
 
    The convention is:
-   * memory is initially reserved and associated with a reservation_id
-   * assuming the domain create succeeds, the reservation is tranferred to the 
domain
-   * a domain which is paused, not shutdown and has clocked up no CPU cycles 
(ie has never run)
+   - memory is initially reserved and associated with a reservation_id
+   - assuming the domain create succeeds, the reservation is tranferred to the 
domain
+   - a domain which is paused, not shutdown and has clocked up no CPU cycles 
(ie has never run)
      has an 'initial-reservation' key which indicates how much memory from the 
current total should be reserved.   
 *)
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/message_forwarding.ml
--- a/ocaml/xapi/message_forwarding.ml  Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/message_forwarding.ml  Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group API Messaging
+ *)
+ 
 open Threadext
 open Pervasiveext
 open Stringext
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/monitor.ml
--- a/ocaml/xapi/monitor.ml     Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/monitor.ml     Fri Nov 20 16:13:02 2009 +0000
@@ -11,9 +11,11 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(* Guest monitoring *)
+(** Guest monitoring
+ * @group Performance Monitoring
+ *)
  
-(* This module is the primary guest monitoring module, and has the
+(** This module is the primary guest monitoring module, and has the
  * loop that runs the monitoring code. It is also responsible for
  * reading all of the stats from dom0. It marshals them up as
  * data_sources (defined in ds.ml). When gathering data about PIFs, we
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/monitor_dbcalls.ml
--- a/ocaml/xapi/monitor_dbcalls.ml     Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/monitor_dbcalls.ml     Fri Nov 20 16:13:02 2009 +0000
@@ -11,9 +11,11 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(** Monitor DB calls *)
+(** Monitor DB calls
+ * @group Performance Monitoring
+ *)
 
-(* Here is where all of the calls that touch the database live. There
+(** Here is where all of the calls that touch the database live. There
  * is a thread that sits waiting for the monitor_rrd module (or
  * xapi_pif module) to wake it up so that it writes into the
  * database. We don't particularly care if the db calls block for a
@@ -31,8 +33,6 @@
  * information. In this particular case, we fix this by forcing an
  * update from xapi_pif.ml - but it's important to keep this in mind
  * because it will be quite easy for this code to get out of sync.
- * 
- * 
  *)
 
 module D = Debug.Debugger(struct let name="monitor_dbcalls" end)
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/monitor_master.ml
--- a/ocaml/xapi/monitor_master.ml      Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/monitor_master.ml      Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Performance Monitoring
+ *)
+ 
 open Listext
 open Threadext
 open Monitor_types
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/monitor_rrds.ml
--- a/ocaml/xapi/monitor_rrds.ml        Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/monitor_rrds.ml        Fri Nov 20 16:13:02 2009 +0000
@@ -11,9 +11,11 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(*
- * RRD maintainence code
- * 
+(** RRD maintainence code
+ * @group Performance Monitoring
+ *)
+
+(**
  * This module is primarily concerned with the lifecycle of RRDs. They
  * are created here, stored to disk, retrieved from disk, and sent
  * amongst the pool.
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/monitor_self.ml
--- a/ocaml/xapi/monitor_self.ml        Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/monitor_self.ml        Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(* Monitor the xapi server process itself, periodically log stats *)
+(** Monitor the xapi server process itself, periodically log stats.
+ * @group Performance Monitoring
+ *)
 
 module D=Debug.Debugger(struct let name="monitor" end)
 open D
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/monitor_transfer.ml
--- a/ocaml/xapi/monitor_transfer.ml    Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/monitor_transfer.ml    Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Performance Monitoring
+ *)
+ 
 open Monitor_types
 
 let marshall_vifs l =
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/monitor_types.ml
--- a/ocaml/xapi/monitor_types.ml       Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/monitor_types.ml       Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(* Some records for easy passing around of monitor types *)
+(** Some records for easy passing around of monitor types.
+ * @group Performance Monitoring
+ *)
 
 type vcpu = {
   vcpu_sumcpus: float;
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/nm.mli
--- a/ocaml/xapi/nm.mli Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/nm.mli Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(** Helper module to plug and unplug PIFs *)
+(** Helper module to plug and unplug PIFs
+ * @group Networking
+ *)
 
 (** Calls the [interface-reconfigure] script to bring up a PIF on this host. 
The script will be skipped if
  *  PIF.currently_attached is still marked as [true] {i unless} 
[management_interface] is set.
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/pool_db_backup.ml
--- a/ocaml/xapi/pool_db_backup.ml      Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/pool_db_backup.ml      Fri Nov 20 16:13:02 2009 +0000
@@ -11,8 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-
-(* Synchronises a copy of the master database amongst the pool's hosts *)
+(** Synchronises a copy of the master database amongst the pool's hosts
+ * @group Pool Management
+ *)
 
 open Threadext
 open Client
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/pool_role.ml
--- a/ocaml/xapi/pool_role.ml   Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/pool_role.ml   Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-
+(**
+ * @group Pool Management
+ *)
+ 
 open Stringext
 open Threadext
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/redo_log_alert.mli
--- a/ocaml/xapi/redo_log_alert.mli     Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/redo_log_alert.mli     Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** 
+ * @group Redo-log
+ *)
 
 (** Runs forever waiting for the redo log's status to change i.e. for
        it to fail or to recover, generating alerts on transitions if
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/redo_log_usage.mli
--- a/ocaml/xapi/redo_log_usage.mli     Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/redo_log_usage.mli     Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** 
+ * @group Redo-log
+ *)
+ 
 (** Connect to the block device and write the latest version of the database 
  * on it to a file with a given name. *)
 val read_from_redo_log : string -> unit
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/rrd.ml
--- a/ocaml/xapi/rrd.ml Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/rrd.ml Fri Nov 20 16:13:02 2009 +0000
@@ -15,6 +15,9 @@
  * RRD module
  * This module provides a util that records data in a way that's compatable
  * with rrdtool (http://oss.oetiker.ch/rrdtool/index.en.html)
+ *)
+(**
+ * @group Performance Monitoring
  *)
 
 open Listext
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/rrd_shared.ml
--- a/ocaml/xapi/rrd_shared.ml  Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/rrd_shared.ml  Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(** Shared RRD data *)
+(** Shared RRD data
+ * @group Performance Monitoring
+ *)
 
 (* This module contains all of the data that is shared between 
  * the monitor_rrds module and the monitor_dbcalls module
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/rrddump.ml
--- a/ocaml/xapi/rrddump.ml     Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/rrddump.ml     Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Performance Monitoring
+ *)
+ 
 let _ = 
   let body = Unixext.read_whole_file_to_string Sys.argv.(1) in
   let input = Xmlm.make_input (`String (0, body)) in
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/slave_backup.ml
--- a/ocaml/xapi/slave_backup.ml        Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/slave_backup.ml        Fri Nov 20 16:13:02 2009 +0000
@@ -10,6 +10,9 @@
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
+ *)
+(**
+ * @group Pool Management
  *)
 
 (** Immediately fetch a database backup from the master. If a flush_spec is 
given, with a list of db connections,
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/sm.ml
--- a/ocaml/xapi/sm.ml  Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/sm.ml  Fri Nov 20 16:13:02 2009 +0000
@@ -11,8 +11,8 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(*
- * storage manager interface
+(** Storage manager interface
+ * @group Storage
  *)
 
 open Stringext
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/sm_exec.ml
--- a/ocaml/xapi/sm_exec.ml     Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/sm_exec.ml     Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(* storage manager backend: external operations through exec *)
+(** Storage manager backend: external operations through exec
+ * @group Storage
+ *)
+
 open Pervasiveext
 open Stringext
 open Printf
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/sm_fs_ops.mli
--- a/ocaml/xapi/sm_fs_ops.mli  Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/sm_fs_ops.mli  Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Storage
+ *)
+
 val with_block_attached_devices :    Context.t -> (XMLRPC.xmlrpc -> 
XMLRPC.xmlrpc) -> API.ref_session -> API.ref_VDI list -> API.vbd_mode -> 
(string list -> 'a) -> 'a
 val with_block_attached_device  :    Context.t -> (XMLRPC.xmlrpc -> 
XMLRPC.xmlrpc) -> API.ref_session -> API.ref_VDI -> API.vbd_mode -> (string -> 
'a) -> 'a
 val with_new_fs_vdi : Context.t -> name_label:string -> 
name_description:string -> sR:API.ref_SR -> required_space:int64 -> 
_type:API.vdi_type ->
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/smint.ml
--- a/ocaml/xapi/smint.ml       Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/smint.ml       Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(* *)
+(**
+ * @group Storage
+ *)
+ 
 open Pervasiveext
 
 module D=Debug.Debugger(struct let name="smint" end)
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/startup.ml
--- a/ocaml/xapi/startup.ml     Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/startup.ml     Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Main Loop and Start-up
+ *)
+ 
 module D=Debug.Debugger(struct let name="startup" end)
 open D
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/static_vdis.ml
--- a/ocaml/xapi/static_vdis.ml Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/static_vdis.ml Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(** Manage VDIs which are attached to dom0 on boot (eg HA statefile, remote 
database) *)
+(** Manage VDIs which are attached to dom0 on boot (eg HA statefile, remote 
database)
+ * @group Storage
+ *)
 
 module D = Debug.Debugger(struct let name="xapi" end)
 open D
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/static_vdis_list.ml
--- a/ocaml/xapi/static_vdis_list.ml    Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/static_vdis_list.ml    Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Storage
+ *)
+ 
 (** Represents the configuration of a static (ie attached on boot) vdi *)
 type vdi = {
   uuid:               string;        (* VDI.uuid *)
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/storage_access.mli
--- a/ocaml/xapi/storage_access.mli     Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/storage_access.mli     Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Storage
+ *)
+ 
 module SR :
 sig
   val attach : __context:Context.t -> self:API.ref_SR -> unit
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/stream_vdi.ml
--- a/ocaml/xapi/stream_vdi.ml  Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/stream_vdi.ml  Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(* Utility functions for streaming VDI images *)
+(** Utility functions for streaming VDI images
+ * @group Storage
+ *)
 
 open Stringext
 open Debug
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/vbdops.ml
--- a/ocaml/xapi/vbdops.ml      Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/vbdops.ml      Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Storage
+ *)
+ 
 open Printf
 open Threadext
 open Stringext
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/vm_config.ml
--- a/ocaml/xapi/vm_config.ml   Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/vm_config.ml   Fri Nov 20 16:13:02 2009 +0000
@@ -11,8 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(* Types which represent VM configuration independent of the pool database. 
Rather than pass around
-   database references and use expensive lookups we can pass around these 
types instead. *)
+(** Types which represent VM configuration independent of the pool database. 
Rather than pass around
+   database references and use expensive lookups we can pass around these 
types instead. 
+ * @group Virtual-Machine Management
+ *)
 
 (* This is a work in progress: as the code evolves we can shuffle data between 
the records *)
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/vm_placement.ml
--- a/ocaml/xapi/vm_placement.ml        Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/vm_placement.ml        Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Virtual-Machine Management
+ *)
+ 
 open Pervasiveext
 
 let ( ++ ) = Int64.add
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/vmops.ml
--- a/ocaml/xapi/vmops.ml       Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/vmops.ml       Fri Nov 20 16:13:02 2009 +0000
@@ -10,6 +10,9 @@
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
+ *)
+(**
+ * @group Virtual-Machine Management
  *)
 open Printf
 open Threadext
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/vmopshelpers.ml
--- a/ocaml/xapi/vmopshelpers.ml        Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/vmopshelpers.ml        Fri Nov 20 16:13:02 2009 +0000
@@ -11,12 +11,14 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** XC, XS and XAL interface helpers.
+ * @group Virtual-Machine Management
+ *)
+
 open Pervasiveext
 
 module D = Debug.Debugger(struct let name="xapi" end)
 open D
-
-(** {2 XC, XS and XAL interface helpers.} *)
 
 open Xenops_helpers
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/wlb_reports.ml
--- a/ocaml/xapi/wlb_reports.ml Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/wlb_reports.ml Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,11 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(*
+(** Workload Balancing Reports and Diagnostics.
+ * @group Workload Balancing
+ *)
+
+(**
   This module serves the /wlb_report and /wlb_diagnostics HTTP requests.
   In the former case, we receive some basic parameters (report name, report
   params) and pass those to the WLB server as a SOAP request.  The latter
@@ -27,15 +31,13 @@
 
   What we do instead is have a receive-side state machine, which passes
   through three states:
-
-    1.  Looking for the <XmlDataSet> tag, and discarding data.
-    2.  Looking for the </XmlDataSet> tag, and sending data.
-    3.  Discarding data until EOF.
+    +  Looking for the <XmlDataSet> tag, and discarding data.
+    +  Looking for the </XmlDataSet> tag, and sending data.
+    +  Discarding data until EOF.
 
   When sending, we have a separate two-state machine for entity decode:
-
-    1.  Looking for an ampersand, and sending data.
-    2.  Found an ampersand, so looking for the ending semicolon.
+    +  Looking for an ampersand, and sending data.
+    +  Found an ampersand, so looking for the ending semicolon.
 
   If the response does not contain an <XmlDataSet> node, then it's most 
   likely a WLB error response.  We parse these using the normal XML parser, 
@@ -47,7 +49,9 @@
 
   The GetDiagnostics message is identical, except we look for different
   start and end tags.
+ *)
 
+(*
   <!-- ExecuteReport response-->
   <s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"; 
xmlns:a="http://www.w3.org/2005/08/addressing";>
     <s:Header>
@@ -83,8 +87,8 @@
       </ExecuteReportResponse>
     </s:Body>
   </s:Envelope>
-
-*)
+  
+ *)
 
 open Printf
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/workload_balancing.ml
--- a/ocaml/xapi/workload_balancing.ml  Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/workload_balancing.ml  Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** Workload Balancing
+ *  @group Workload Balancing
+ *)
+ 
 open Printf
 open Stringext
 open Threadext
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi.ml
--- a/ocaml/xapi/xapi.ml        Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi.ml        Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Main Loop and Start-up
+ *)
+ 
 open Printf
 open Stringext
 open Vmopshelpers
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_auth.ml
--- a/ocaml/xapi/xapi_auth.ml   Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_auth.ml   Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Access Control
+ *)
+ 
 open Auth_signature
 open Extauth
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_bond.mli
--- a/ocaml/xapi/xapi_bond.mli  Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_bond.mli  Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(** Module that defines API functions for Bonds *)
+(** Module that defines API functions for Bond objects
+ * @group XenAPI functions
+ *)
 
 (** Create a PIF to represent the bond master and a Bond record to represent 
the bond. 
  *  Return a reference to the bond record. The given network must not have any 
local
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_cli.ml
--- a/ocaml/xapi/xapi_cli.ml    Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_cli.ml    Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-
+(**
+ * @group Command-Line Interface (CLI)
+ *)
+ 
 open Stringext
 open Pervasiveext
 open Cli_frontend
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_fist.ml
--- a/ocaml/xapi/xapi_fist.ml   Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_fist.ml   Fri Nov 20 16:13:02 2009 +0000
@@ -11,8 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
- 
-(** Module for reading FIST points *)
+(** Module for reading FIST points
+ * @group Testing
+ *)
  
 module D = Debug.Debugger(struct let name="xapi" end)
 open D
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_ha.ml
--- a/ocaml/xapi/xapi_ha.ml     Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_ha.ml     Fri Nov 20 16:13:02 2009 +0000
@@ -11,14 +11,12 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-
-
-(* Functions for implementing 'High Availability' (HA). File is divided into 3 
sections:
-   1. scripts and functions which form part of the HA subsystem interface
-   2. internal API calls used for arming and disarming individual hosts
-   3. external API calls (Pool.enable_ha, Pool.disable_ha) used for turning 
on/off HA
-   pool-wide
-*)
+(** Functions for implementing 'High Availability' (HA). File is divided into 
3 sections:
+   + scripts and functions which form part of the HA subsystem interface
+   + internal API calls used for arming and disarming individual hosts
+   + external API calls (Pool.enable_ha, Pool.disable_ha) used for turning 
on/off HA pool-wide
+ * @group High Availability (HA)
+ *)
 
 module D = Debug.Debugger(struct let name="xapi_ha" end)
 open D
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_ha_stats.ml
--- a/ocaml/xapi/xapi_ha_stats.ml       Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_ha_stats.ml       Fri Nov 20 16:13:02 2009 +0000
@@ -12,7 +12,10 @@
  * GNU Lesser General Public License for more details.
  *)
 (* Module used as a latch between the HA monitor thread and the stats code *)
-
+(**
+ * @group High Availability (HA)
+ *)
+ 
 let enabled = ref false
 
 let m = Mutex.create ()
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_ha_vm_failover.mli
--- a/ocaml/xapi/xapi_ha_vm_failover.mli        Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_ha_vm_failover.mli        Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group High Availability (HA)
+ *)
+ 
 (** True if the VM is set to always run *)
 val vm_should_always_run : bool -> string -> bool
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_host.mli
--- a/ocaml/xapi/xapi_host.mli  Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_host.mli  Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(** Module that defines API functions (messages) for [host] objects *)
+(** Module that defines API functions for Host objects
+ * @group XenAPI functions
+ *)
 
 (** {2 (Fill in Title!)} *)
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_host_backup.ml
--- a/ocaml/xapi/xapi_host_backup.ml    Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_host_backup.ml    Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-
+(**
+ * @group Host Management
+ *)
+ 
 open Http
 open Pervasiveext
 open Forkhelpers
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_host_cpu.ml
--- a/ocaml/xapi/xapi_host_cpu.ml       Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_host_cpu.ml       Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Host Management
+ *)
+ 
 module D=Debug.Debugger(struct let name="xapi" end)
 open D
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_host_crashdump.ml
--- a/ocaml/xapi/xapi_host_crashdump.ml Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_host_crashdump.ml Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Host Management
+ *)
+ 
 open Pervasiveext
 open Stringext
 open Xapi_support
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_host_helpers.ml
--- a/ocaml/xapi/xapi_host_helpers.ml   Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_host_helpers.ml   Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(** Common code between the fake and real servers for dealing with Hosts *)
+(** Common code between the fake and real servers for dealing with Hosts.
+ * @group Host Management
+ *)
 
 module D = Debug.Debugger(struct let name="xapi" end)
 open D
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_host_patch.ml
--- a/ocaml/xapi/xapi_host_patch.ml     Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_host_patch.ml     Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Host Management
+ *)
+ 
 open Pervasiveext
 open Stringext
 open Unixext
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_message.ml
--- a/ocaml/xapi/xapi_message.ml        Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_message.ml        Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,11 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** Module that defines API functions for Message objects
+ * @group XenAPI functions
+ *)
+
+ 
 (** Message store *)
 
 (* We use a filesystem based 'database': 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_mgmt_iface.mli
--- a/ocaml/xapi/xapi_mgmt_iface.mli    Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_mgmt_iface.mli    Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-
+(**
+ * @group Networking
+ *)
+ 
 (** Block until an IP address appears on the management interface *)
 val wait_for_management_ip : unit -> string
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_network.mli
--- a/ocaml/xapi/xapi_network.mli       Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_network.mli       Fri Nov 20 16:13:02 2009 +0000
@@ -1,4 +1,19 @@
-(** Module that defines API functions for Network objects *)
+(*
+ * Copyright (C) 2006-2009 Citrix Systems Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation; version 2.1 only. with the special
+ * exception on linking described in file LICENSE.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *)
+(** Module that defines API functions for Network objects
+ * @group XenAPI functions
+ *)
 
 (** Instantiate the bridge associated to this network on the localhost, and 
bring
    up the PIFs on the localhost that are on this network, provided it wouldn't 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_network_attach_helpers.ml
--- a/ocaml/xapi/xapi_network_attach_helpers.ml Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_network_attach_helpers.ml Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(** Assertion helpers used when attaching a network *)
+(** Assertion helpers used when attaching a network
+ * @group Networking
+ *)
  
 module D=Debug.Debugger(struct let name="xapi" end)
 open D
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_network_real.ml
--- a/ocaml/xapi/xapi_network_real.ml   Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_network_real.ml   Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(** 'Real' network backend *)
+(** 'Real' network backend
+ * @group Networking
+ *)
 
 module D=Debug.Debugger(struct let name="xapi" end)
 open D
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_network_types.ml
--- a/ocaml/xapi/xapi_network_types.ml  Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_network_types.ml  Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(** Common code between the fake and real servers for dealing with Networks *)
+(** Common code between the fake and real servers for dealing with Networks
+ * @group Networking
+ *)
 
 module D=Debug.Debugger(struct let name="xapi" end)
 open D
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_pbd.ml
--- a/ocaml/xapi/xapi_pbd.ml    Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_pbd.ml    Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(* API Calls *)
+(** Module that defines API functions for PBD objects
+ * @group XenAPI functions
+ *)
 
 open Db_filter
 open Db_filter_types
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_pif.mli
--- a/ocaml/xapi/xapi_pif.mli   Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_pif.mli   Fri Nov 20 16:13:02 2009 +0000
@@ -1,4 +1,19 @@
-(** Module that defines API functions for PIF objects *)
+(*
+ * Copyright (C) 2006-2009 Citrix Systems Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation; version 2.1 only. with the special
+ * exception on linking described in file LICENSE.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *)
+(** Module that defines API functions for PIF objects
+ * @group XenAPI functions
+ *)
 
 (** {2 API functions} *)
   
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_pool.mli
--- a/ocaml/xapi/xapi_pool.mli  Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_pool.mli  Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(** Module that defines API functions (messages) for [pool] objects *)
+(** Module that defines API functions for Pool objects
+ * @group XenAPI functions
+ *)
 
 (** {2 (Fill in Title!)} *)
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_pool_patch.ml
--- a/ocaml/xapi/xapi_pool_patch.ml     Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_pool_patch.ml     Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Pool Management
+ *)
+ 
 open Pervasiveext
 open Stringext
 open Http
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_pool_transition.ml
--- a/ocaml/xapi/xapi_pool_transition.ml        Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_pool_transition.ml        Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Pool Management
+ *)
+ 
 open Client
 
 module D = Debug.Debugger(struct let name="xapi" end)
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_role.ml
--- a/ocaml/xapi/xapi_role.ml   Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_role.ml   Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** Module that defines API functions for Role objects
+ * @group XenAPI functions
+ *)
+
 module D = Debug.Debugger(struct let name="xapi_role" end)
 open D
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_secret.ml
--- a/ocaml/xapi/xapi_secret.ml Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_secret.ml Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** Module that defines API functions for Secret objects
+ * @group XenAPI functions
+ *)
+
 open Stringext
 
 module D = Debug.Debugger(struct let name = "xapi_secret" end)
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_session.ml
--- a/ocaml/xapi/xapi_session.ml        Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_session.ml        Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,11 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** Module that defines API functions for Session objects
+ * @group XenAPI functions
+ *)
+
+ 
 (* include Custom_actions.DebugVersion.Session *)
 
 module D = Debug.Debugger(struct let name="xapi" end)
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_sm.ml
--- a/ocaml/xapi/xapi_sm.ml     Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_sm.ml     Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-
+(**
+ * @group Storage
+ *)
+ 
 module D=Debug.Debugger(struct let name="xapi" end)
 open D
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_sr.ml
--- a/ocaml/xapi/xapi_sr.ml     Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_sr.ml     Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** Module that defines API functions for SR objects
+ * @group XenAPI functions
+ *)
+ 
 open Printf
 open Threadext
 open Pervasiveext
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_subject.ml
--- a/ocaml/xapi/xapi_subject.ml        Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_subject.ml        Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** Module that defines API functions for Subject objects
+ * @group XenAPI functions
+ *)
+ 
 module D = Debug.Debugger(struct let name="xapi_subject" end)
 open D
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_task.ml
--- a/ocaml/xapi/xapi_task.ml   Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_task.ml   Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** Module that defines API functions for Task objects
+ * @group XenAPI functions
+ *)
+ 
 module D = Debug.Debugger(struct let name="xapi" end)
 open D
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_templates.ml
--- a/ocaml/xapi/xapi_templates.ml      Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_templates.ml      Fri Nov 20 16:13:02 2009 +0000
@@ -11,8 +11,11 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Virtual-Machine Management
+ *)
 
-(* Here we define a template to be a VM with 'is_a_template = true' which,
+(** Here we define a template to be a VM with 'is_a_template = true' which,
    when initially booted after having been cloned, inspects its own
    configuration (stored by the UI/CLI in VM.other_config) and uses the API
    to provision disks, make filesystems, perform any install steps and then
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_templates_install.ml
--- a/ocaml/xapi/xapi_templates_install.ml      Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_templates_install.ml      Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Virtual-Machine Management
+ *)
+ 
 open Pervasiveext
 open Client
 open Forkhelpers
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_user.ml
--- a/ocaml/xapi/xapi_user.ml   Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_user.ml   Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** Module that defines API functions for User objects
+ * @group XenAPI functions
+ *)
+
 let get_allowed_messages ~__context ~self = []
 
 let create ~__context ~short_name ~fullname ~other_config =
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_vbd.ml
--- a/ocaml/xapi/xapi_vbd.ml    Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_vbd.ml    Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** Module that defines API functions for VBD objects
+ * @group XenAPI functions
+ *)
+ 
 open Vmopshelpers
 open Stringext
 open Xapi_vbd_helpers
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_vbd_helpers.ml
--- a/ocaml/xapi/xapi_vbd_helpers.ml    Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_vbd_helpers.ml    Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(** Common code between the fake and real servers for dealing with VBDs *)
+(** Common code between the fake and real servers for dealing with VBDs
+ * @group Storage
+ *)
 
 open Threadext
 open Stringext
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_vdi.ml
--- a/ocaml/xapi/xapi_vdi.ml    Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_vdi.ml    Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** Module that defines API functions for VDI objects
+ * @group XenAPI functions
+ *)
+ 
 module D=Debug.Debugger(struct let name="xapi" end)
 open D
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_vdi_helpers.ml
--- a/ocaml/xapi/xapi_vdi_helpers.ml    Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_vdi_helpers.ml    Fri Nov 20 16:13:02 2009 +0000
@@ -10,6 +10,9 @@
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
+ *)
+(**
+ * @group Storage
  *)
 
 (* We only support .iso files (from an iso SR) and block devices from
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_vif.mli
--- a/ocaml/xapi/xapi_vif.mli   Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_vif.mli   Fri Nov 20 16:13:02 2009 +0000
@@ -1,4 +1,19 @@
-(** Module that defines API functions for VIF objects *)
+(*
+ * Copyright (C) 2006-2009 Citrix Systems Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published
+ * by the Free Software Foundation; version 2.1 only. with the special
+ * exception on linking described in file LICENSE.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Lesser General Public License for more details.
+ *)
+(** Module that defines API functions for VIF objects
+ * @group XenAPI functions
+ *)
 
 (** {2 API functions} *)
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_vif_helpers.ml
--- a/ocaml/xapi/xapi_vif_helpers.ml    Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_vif_helpers.ml    Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(** Common code between the fake and real servers for dealing with VIFs *)
+(** Common code between the fake and real servers for dealing with VIFs
+ * @group Networking
+ *)
 
 open Stringext
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_vlan.mli
--- a/ocaml/xapi/xapi_vlan.mli  Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_vlan.mli  Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(** Module that defines API functions for VLANs *)
+(** Module that defines API functions for VLANs
+ * @group XenAPI functions
+ *)
 
 (** Create a VLAN with the given [tag] using the [tagged_PIF] as VLAN slave. 
  *  Creates a new PIF object as VLAN master (untagged PIF) and connects it to 
the
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_vm.mli
--- a/ocaml/xapi/xapi_vm.mli    Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_vm.mli    Fri Nov 20 16:13:02 2009 +0000
@@ -11,8 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-
-(** Module that defines API functions (messages) for [vm] objects *)
+(** Module that defines API functions for VM objects
+ * @group XenAPI functions
+ *)
 
 (** {2 (Fill in Title!)} *)
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_vm_clone.ml
--- a/ocaml/xapi/xapi_vm_clone.ml       Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_vm_clone.ml       Fri Nov 20 16:13:02 2009 +0000
@@ -10,6 +10,9 @@
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
+ *)
+(**
+ * @group Virtual-Machine Management
  *)
 open Client
 open Pervasiveext
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_vm_helpers.ml
--- a/ocaml/xapi/xapi_vm_helpers.ml     Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_vm_helpers.ml     Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(** Common code between the fake and real servers for dealing with VMs *)
+(** Common code between the fake and real servers for dealing with VMs.
+ * @group Virtual-Machine Management
+ *)
 
 open Stringext
 open Printf
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_vm_lifecycle.ml
--- a/ocaml/xapi/xapi_vm_lifecycle.ml   Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_vm_lifecycle.ml   Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(** Helper functions relating to VM lifecycle operations *)
+(** Helper functions relating to VM lifecycle operations.
+ * @group Virtual-Machine Management
+ *)
 
 open Xapi_pv_driver_version
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_vm_memory_constraints.ml
--- a/ocaml/xapi/xapi_vm_memory_constraints.ml  Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_vm_memory_constraints.ml  Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Virtual-Machine Management
+ *)
+ 
 (** An extension of Vm_memory_constraints that provides additional database 
and API operations. *)
 module type T = sig
 
@@ -65,4 +69,4 @@
                Db.VM.set_memory_dynamic_max ~__context ~self:vm_ref 
~value:constraints.dynamic_max;
                Db.VM.set_memory_static_max  ~__context ~self:vm_ref 
~value:constraints.static_max
 
-end
\ No newline at end of file
+end
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_vm_migrate.ml
--- a/ocaml/xapi/xapi_vm_migrate.ml     Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_vm_migrate.ml     Fri Nov 20 16:13:02 2009 +0000
@@ -11,10 +11,14 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(* We only currently support within-pool live or dead migration.
+(**
+ * @group Virtual-Machine Management
+ *)
+ 
+(** We only currently support within-pool live or dead migration.
    Unfortunately in the cross-pool case, two hosts must share the same SR and
    co-ordinate tapdisk locking. We have not got code for this. 
-*)
+ *)
 
 open Pervasiveext
 open Printf
@@ -25,7 +29,7 @@
 
 open Client
 
-(* Extra parameter added in rel_mnr: memory_required_kib which is the lowest
+(** Extra parameter added in rel_mnr: memory_required_kib which is the lowest
    upper-bound on the amount of memory we know the domain will fit in. This
    is also used as a neutral target value post-migrate.
    If this is missing (e.g. during rolling upgrade from George) we fall back 
to *static_max*.
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_vm_placement.ml
--- a/ocaml/xapi/xapi_vm_placement.ml   Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_vm_placement.ml   Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Virtual-Machine Management
+ *)
+ 
 open Db_filter_types
 open Pervasiveext
 open Vm_placement
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xapi_vm_snapshot.ml
--- a/ocaml/xapi/xapi_vm_snapshot.ml    Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xapi_vm_snapshot.ml    Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(**
+ * @group Virtual-Machine Management
+ *)
+ 
 open Client
 open Vmopshelpers
 
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xha_interface.mli
--- a/ocaml/xapi/xha_interface.mli      Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xha_interface.mli      Fri Nov 20 16:13:02 2009 +0000
@@ -11,6 +11,10 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
+(** 
+ * @group High Availability (HA)
+ *)
+ 
 module DaemonConfiguration : sig
 
        module Host : sig
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xha_metadata_vdi.ml
--- a/ocaml/xapi/xha_metadata_vdi.ml    Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xha_metadata_vdi.ml    Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(** Manage the lifecycle of HA metadata VDI *)
+(** Manage the lifecycle of HA metadata VDI 
+ * @group High Availability (HA)
+ *)
 
 module D = Debug.Debugger(struct let name="xapi" end)
 open D
diff -r d6396c0904fc -r 20aebb18dd9c ocaml/xapi/xha_statefile.ml
--- a/ocaml/xapi/xha_statefile.ml       Fri Nov 20 16:13:02 2009 +0000
+++ b/ocaml/xapi/xha_statefile.ml       Fri Nov 20 16:13:02 2009 +0000
@@ -11,7 +11,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU Lesser General Public License for more details.
  *)
-(** Manage the lifecycle of HA statefiles *)
+(** Manage the lifecycle of HA statefiles
+ * @group High Availability (HA)
+ *)
 
 module D = Debug.Debugger(struct let name="xapi" end)
 open D
124 files changed, 595 insertions(+), 152 deletions(-)
ocaml/auth/auth_signature.ml              |    7 +-
ocaml/auth/authx.ml                       |    4 +
ocaml/auth/extauth.ml                     |    4 +
ocaml/auth/extauth_plugin_ADlikewise.ml   |    4 +
ocaml/auth/parse_likewise.ml              |    5 +
ocaml/doc/ocamldoc.js                     |   87 +++++++++++++++++++++++------
ocaml/doc/odoc_json.ml                    |   14 ----
ocaml/doc/style.css                       |   12 +++-
ocaml/license/license.mli                 |    5 +
ocaml/license/restrictions.mli            |    5 +
ocaml/license/v6client.mli                |    5 +
ocaml/xapi/api_server.ml                  |    4 +
ocaml/xapi/cli_cmdtable.ml                |    3 +
ocaml/xapi/cli_frontend.ml                |    4 +
ocaml/xapi/cli_key.ml                     |    4 +
ocaml/xapi/cli_operations.ml              |    4 +
ocaml/xapi/cli_operations_geneva.ml       |    4 +
ocaml/xapi/cli_printer.ml                 |    4 +
ocaml/xapi/cli_protocol.ml                |    3 +
ocaml/xapi/cli_util.ml                    |    4 +
ocaml/xapi/create_misc.ml                 |    4 +
ocaml/xapi/create_networks.ml             |    4 +
ocaml/xapi/create_storage.ml              |    6 +-
ocaml/xapi/create_templates.ml            |    4 +
ocaml/xapi/db.ml                          |    4 +
ocaml/xapi/db_gc.ml                       |    4 +
ocaml/xapi/dbsync.ml                      |    4 +
ocaml/xapi/dbsync_master.ml               |    4 +
ocaml/xapi/dbsync_slave.ml                |    4 +
ocaml/xapi/ds.ml                          |    4 +
ocaml/xapi/export.ml                      |   40 ++++++-------
ocaml/xapi/import.ml                      |    4 +
ocaml/xapi/import_raw_vdi.ml              |    4 +
ocaml/xapi/import_xva.ml                  |    4 +
ocaml/xapi/importexport.ml                |    4 +
ocaml/xapi/license_check.mli              |    5 +
ocaml/xapi/memory_check.mli               |    4 +
ocaml/xapi/memory_control.mli             |   12 ++--
ocaml/xapi/message_forwarding.ml          |    4 +
ocaml/xapi/monitor.ml                     |    6 +-
ocaml/xapi/monitor_dbcalls.ml             |    8 +-
ocaml/xapi/monitor_master.ml              |    4 +
ocaml/xapi/monitor_rrds.ml                |    8 +-
ocaml/xapi/monitor_self.ml                |    4 +
ocaml/xapi/monitor_transfer.ml            |    4 +
ocaml/xapi/monitor_types.ml               |    4 +
ocaml/xapi/nm.mli                         |    4 +
ocaml/xapi/pool_db_backup.ml              |    5 +
ocaml/xapi/pool_role.ml                   |    5 +
ocaml/xapi/redo_log_alert.mli             |    3 +
ocaml/xapi/redo_log_usage.mli             |    4 +
ocaml/xapi/rrd.ml                         |    3 +
ocaml/xapi/rrd_shared.ml                  |    4 +
ocaml/xapi/rrddump.ml                     |    4 +
ocaml/xapi/slave_backup.ml                |    3 +
ocaml/xapi/sm.ml                          |    4 -
ocaml/xapi/sm_exec.ml                     |    5 +
ocaml/xapi/sm_fs_ops.mli                  |    4 +
ocaml/xapi/smint.ml                       |    5 +
ocaml/xapi/startup.ml                     |    4 +
ocaml/xapi/static_vdis.ml                 |    4 +
ocaml/xapi/static_vdis_list.ml            |    4 +
ocaml/xapi/storage_access.mli             |    4 +
ocaml/xapi/stream_vdi.ml                  |    4 +
ocaml/xapi/vbdops.ml                      |    4 +
ocaml/xapi/vm_config.ml                   |    6 +-
ocaml/xapi/vm_placement.ml                |    4 +
ocaml/xapi/vmops.ml                       |    3 +
ocaml/xapi/vmopshelpers.ml                |    6 +-
ocaml/xapi/wlb_reports.ml                 |   24 ++++----
ocaml/xapi/workload_balancing.ml          |    4 +
ocaml/xapi/xapi.ml                        |    4 +
ocaml/xapi/xapi_auth.ml                   |    4 +
ocaml/xapi/xapi_bond.mli                  |    4 +
ocaml/xapi/xapi_cli.ml                    |    5 +
ocaml/xapi/xapi_fist.ml                   |    5 +
ocaml/xapi/xapi_ha.ml                     |   14 ++--
ocaml/xapi/xapi_ha_stats.ml               |    5 +
ocaml/xapi/xapi_ha_vm_failover.mli        |    4 +
ocaml/xapi/xapi_host.mli                  |    4 +
ocaml/xapi/xapi_host_backup.ml            |    5 +
ocaml/xapi/xapi_host_cpu.ml               |    4 +
ocaml/xapi/xapi_host_crashdump.ml         |    4 +
ocaml/xapi/xapi_host_helpers.ml           |    4 +
ocaml/xapi/xapi_host_patch.ml             |    4 +
ocaml/xapi/xapi_message.ml                |    5 +
ocaml/xapi/xapi_mgmt_iface.mli            |    5 +
ocaml/xapi/xapi_network.mli               |   17 +++++
ocaml/xapi/xapi_network_attach_helpers.ml |    4 +
ocaml/xapi/xapi_network_real.ml           |    4 +
ocaml/xapi/xapi_network_types.ml          |    4 +
ocaml/xapi/xapi_pbd.ml                    |    4 +
ocaml/xapi/xapi_pif.mli                   |   17 +++++
ocaml/xapi/xapi_pool.mli                  |    4 +
ocaml/xapi/xapi_pool_patch.ml             |    4 +
ocaml/xapi/xapi_pool_transition.ml        |    4 +
ocaml/xapi/xapi_role.ml                   |    4 +
ocaml/xapi/xapi_secret.ml                 |    4 +
ocaml/xapi/xapi_session.ml                |    5 +
ocaml/xapi/xapi_sm.ml                     |    5 +
ocaml/xapi/xapi_sr.ml                     |    4 +
ocaml/xapi/xapi_subject.ml                |    4 +
ocaml/xapi/xapi_task.ml                   |    4 +
ocaml/xapi/xapi_templates.ml              |    5 +
ocaml/xapi/xapi_templates_install.ml      |    4 +
ocaml/xapi/xapi_user.ml                   |    4 +
ocaml/xapi/xapi_vbd.ml                    |    4 +
ocaml/xapi/xapi_vbd_helpers.ml            |    4 +
ocaml/xapi/xapi_vdi.ml                    |    4 +
ocaml/xapi/xapi_vdi_helpers.ml            |    3 +
ocaml/xapi/xapi_vif.mli                   |   17 +++++
ocaml/xapi/xapi_vif_helpers.ml            |    4 +
ocaml/xapi/xapi_vlan.mli                  |    4 +
ocaml/xapi/xapi_vm.mli                    |    5 +
ocaml/xapi/xapi_vm_clone.ml               |    3 +
ocaml/xapi/xapi_vm_helpers.ml             |    4 +
ocaml/xapi/xapi_vm_lifecycle.ml           |    4 +
ocaml/xapi/xapi_vm_memory_constraints.ml  |    5 +
ocaml/xapi/xapi_vm_migrate.ml             |   10 ++-
ocaml/xapi/xapi_vm_placement.ml           |    4 +
ocaml/xapi/xapi_vm_snapshot.ml            |    4 +
ocaml/xapi/xha_interface.mli              |    4 +
ocaml/xapi/xha_metadata_vdi.ml            |    4 +
ocaml/xapi/xha_statefile.ml               |    4 +


Attachment: xen-api.hg-3.patch
Description: Text Data

_______________________________________________
xen-api mailing list
xen-api@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/mailman/listinfo/xen-api

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.