Split out the kernel symbol detection code.
[virt-mem.git] / lib / virt_mem_utils.ml
index 8eb312a..0a3b687 100644 (file)
@@ -1,3 +1,4 @@
+(** Common and utility functions. *)
 (* Memory info command for virtual domains.
    (C) Copyright 2008 Richard W.M. Jones, Red Hat Inc.
    http://libvirt.org/
@@ -78,9 +79,8 @@ let bits_of_wordsize = function
 let bytes_of_wordsize = function
   | W32 -> 4 | W64 -> 8
 
-(* Returns (count, value) in order of highest frequency occurring in the
- * list.
- *)
+(** Returns (count, value) in order of highest frequency occurring in the
+    list. *)
 let frequency xs =
   let xs = List.sort compare xs in
   let rec loop = function
@@ -96,6 +96,7 @@ let frequency xs =
   let xs = loop xs in
   List.rev (List.sort compare xs)
 
+(** Like the Unix uniq(1) command. *)
 let rec uniq ?(cmp = Pervasives.compare) = function
   | [] -> []
   | [x] -> [x]
@@ -104,25 +105,25 @@ let rec uniq ?(cmp = Pervasives.compare) = function
   | x :: y :: xs ->
       x :: uniq (y :: xs)
 
+(** Like the Unix pipeline 'sort|uniq'. *)
 let sort_uniq ?cmp xs =
   let xs = ExtList.List.sort ?cmp xs in
   let xs = uniq ?cmp xs in
   xs
 
-(* Pad a string to a fixed width (from virt-top, but don't truncate). *)
+(** Pad a string to a fixed width (from virt-top, but don't truncate). *)
 let pad width str =
   let n = String.length str in
   if n >= width then str
   else (* if n < width then *) str ^ String.make (width-n) ' '
 
-(* General binary tree type.  Data 'a is stored in the leaves and 'b
- * is stored in the nodes.
- *)
+(** General binary tree type.  Data 'a is stored in the leaves and 'b
+    is stored in the nodes. *)
 type ('a,'b) binary_tree =
   | Leaf of 'a
   | Node of ('a,'b) binary_tree * 'b * ('a,'b) binary_tree
 
-(* This prints out the binary tree in graphviz dot format. *)
+(** Print out the binary tree in graphviz dot format. *)
 let print_binary_tree leaf_printer node_printer tree =
   (* Assign a unique, fixed label to each node. *)
   let label =