summaryrefslogtreecommitdiffstats
path: root/generator
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2010-11-04 08:43:10 +0000
committerRichard W.M. Jones <rjones@redhat.com>2010-11-04 10:04:40 +0000
commit7e3d76e41b3c2862ae04744b01e5e23b245393e4 (patch)
tree0379a9f5dde88d038b68d4ab7bc562fa82d949b2 /generator
parentbfeffeb1e4d6f3725eb8148c098505a9d81a7ba5 (diff)
downloadlibguestfs-7e3d76e41b3c2862ae04744b01e5e23b245393e4.tar.gz
libguestfs-7e3d76e41b3c2862ae04744b01e5e23b245393e4.tar.xz
libguestfs-7e3d76e41b3c2862ae04744b01e5e23b245393e4.zip
docs: Which API calls were first supported in which upstream versions.
Run src/api-support/update-from-tarballs.sh (this won't work unless you have a local copy of the tarballs from the website). src/api-support/added contains the result of running the script, a list of pairs: (API name, version first appeared).
Diffstat (limited to 'generator')
-rw-r--r--generator/.depend13
-rw-r--r--generator/Makefile.am2
-rw-r--r--generator/generator_api_versions.ml44
-rw-r--r--generator/generator_api_versions.mli31
-rw-r--r--generator/generator_c.ml3
-rw-r--r--generator/generator_main.ml4
6 files changed, 93 insertions, 4 deletions
diff --git a/generator/.depend b/generator/.depend
index c9d1a519..4ea8040a 100644
--- a/generator/.depend
+++ b/generator/.depend
@@ -13,6 +13,9 @@ generator_structs.cmo: generator_utils.cmi generator_types.cmo \
generator_structs.cmi
generator_structs.cmx: generator_utils.cmx generator_types.cmx \
generator_structs.cmi
+generator_api_versions.cmi:
+generator_api_versions.cmo: generator_utils.cmi generator_api_versions.cmi
+generator_api_versions.cmx: generator_utils.cmx generator_api_versions.cmi
generator_optgroups.cmo: generator_types.cmo generator_actions.cmi
generator_optgroups.cmx: generator_types.cmx generator_actions.cmx
generator_prepopts.cmi:
@@ -31,10 +34,10 @@ generator_checks.cmx: generator_utils.cmx generator_types.cmx \
generator_actions.cmx
generator_c.cmo: generator_utils.cmi generator_types.cmo \
generator_structs.cmi generator_pr.cmi generator_optgroups.cmo \
- generator_docstrings.cmo generator_actions.cmi
+ generator_docstrings.cmo generator_api_versions.cmi generator_actions.cmi
generator_c.cmx: generator_utils.cmx generator_types.cmx \
generator_structs.cmx generator_pr.cmx generator_optgroups.cmx \
- generator_docstrings.cmx generator_actions.cmx
+ generator_docstrings.cmx generator_api_versions.cmx generator_actions.cmx
generator_xdr.cmo: generator_utils.cmi generator_types.cmo \
generator_structs.cmi generator_pr.cmi generator_optgroups.cmo \
generator_docstrings.cmo generator_actions.cmi
@@ -124,10 +127,12 @@ generator_main.cmo: generator_xdr.cmo generator_structs.cmi \
generator_php.cmo generator_perl.cmo generator_ocaml.cmo \
generator_java.cmo generator_haskell.cmo generator_fish.cmo \
generator_errnostring.cmo generator_daemon.cmo generator_csharp.cmo \
- generator_capitests.cmo generator_c.cmo generator_bindtests.cmo
+ generator_capitests.cmo generator_c.cmo generator_bindtests.cmo \
+ generator_api_versions.cmi
generator_main.cmx: generator_xdr.cmx generator_structs.cmx \
generator_ruby.cmx generator_python.cmx generator_pr.cmx \
generator_php.cmx generator_perl.cmx generator_ocaml.cmx \
generator_java.cmx generator_haskell.cmx generator_fish.cmx \
generator_errnostring.cmx generator_daemon.cmx generator_csharp.cmx \
- generator_capitests.cmx generator_c.cmx generator_bindtests.cmx
+ generator_capitests.cmx generator_c.cmx generator_bindtests.cmx \
+ generator_api_versions.cmx
diff --git a/generator/Makefile.am b/generator/Makefile.am
index 469265b6..cd1e1de8 100644
--- a/generator/Makefile.am
+++ b/generator/Makefile.am
@@ -23,6 +23,8 @@ SOURCES = \
generator_actions.ml \
generator_structs.mli \
generator_structs.ml \
+ generator_api_versions.mli \
+ generator_api_versions.ml \
generator_optgroups.ml \
generator_prepopts.mli \
generator_prepopts.ml \
diff --git a/generator/generator_api_versions.ml b/generator/generator_api_versions.ml
new file mode 100644
index 00000000..5f9d96f7
--- /dev/null
+++ b/generator/generator_api_versions.ml
@@ -0,0 +1,44 @@
+(* libguestfs
+ * Copyright (C) 2010 Red Hat Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *)
+
+(* Please read generator/README first. *)
+
+open Generator_utils
+
+let hash = Hashtbl.create 13
+
+let load_api_versions filename =
+ let chan = open_in filename in
+ let rec loop lineno =
+ let line = input_line chan in
+ let sym, ver =
+ match string_split " " line with
+ | [ sym; ver ] -> sym, ver
+ | _ ->
+ failwithf "%s: %d: invalid input in API versions file"
+ filename lineno in
+ Hashtbl.replace hash sym ver;
+ loop (lineno+1)
+ in
+ (try loop 1 with End_of_file -> ());
+ close_in chan
+
+let lookup_api_version sym =
+ try Hashtbl.find hash sym
+ with Not_found ->
+ failwithf "API symbol \"%s\" not found in API versions file" sym
diff --git a/generator/generator_api_versions.mli b/generator/generator_api_versions.mli
new file mode 100644
index 00000000..03e8777f
--- /dev/null
+++ b/generator/generator_api_versions.mli
@@ -0,0 +1,31 @@
+(* libguestfs
+ * Copyright (C) 2010 Red Hat Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ *)
+
+(* Please read generator/README first. *)
+
+(** In which versions were calls added to the API?
+
+ See [src/api-support] directory for more details. *)
+
+val load_api_versions : string -> unit
+(** Load the data from the named file. *)
+
+val lookup_api_version : string -> string
+(** [lookup_api_version c_api] looks up the version that the C API call
+ (which must be the full C name, eg. ["guestfs_launch"]) was
+ added. This returns the version string, eg. ["0.3"]. *)
diff --git a/generator/generator_c.ml b/generator/generator_c.ml
index 13040f0b..7f55efa5 100644
--- a/generator/generator_c.ml
+++ b/generator/generator_c.ml
@@ -24,6 +24,7 @@ open Generator_types
open Generator_utils
open Generator_pr
open Generator_docstrings
+open Generator_api_versions
open Generator_optgroups
open Generator_actions
open Generator_structs
@@ -254,6 +255,8 @@ L</KEYS AND PASSPHRASES> for more information.\n\n";
| None -> ()
| Some txt -> pr "%s\n\n" txt
);
+ let version = lookup_api_version name in
+ pr "(Added in %s)\n\n" version;
(* Handling of optional argument variants. *)
if optargs <> [] then (
diff --git a/generator/generator_main.ml b/generator/generator_main.ml
index 41214130..f384fac0 100644
--- a/generator/generator_main.ml
+++ b/generator/generator_main.ml
@@ -23,6 +23,7 @@ open Printf
open Generator_pr
open Generator_structs
+open Generator_api_versions
open Generator_c
open Generator_xdr
@@ -72,6 +73,9 @@ Run it from the top source directory using the command
perror "lock: HACKING" exn;
exit 1);
+ (* Read the API versions file. *)
+ load_api_versions "src/api-support/added";
+
output_to "src/guestfs_protocol.x" generate_xdr;
output_to "src/guestfs-structs.h" generate_structs_h;
output_to "src/guestfs-actions.h" generate_actions_h;