diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2010-11-04 08:43:10 +0000 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2010-11-04 10:04:40 +0000 |
commit | 7e3d76e41b3c2862ae04744b01e5e23b245393e4 (patch) | |
tree | 0379a9f5dde88d038b68d4ab7bc562fa82d949b2 /generator | |
parent | bfeffeb1e4d6f3725eb8148c098505a9d81a7ba5 (diff) | |
download | libguestfs-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/.depend | 13 | ||||
-rw-r--r-- | generator/Makefile.am | 2 | ||||
-rw-r--r-- | generator/generator_api_versions.ml | 44 | ||||
-rw-r--r-- | generator/generator_api_versions.mli | 31 | ||||
-rw-r--r-- | generator/generator_c.ml | 3 | ||||
-rw-r--r-- | generator/generator_main.ml | 4 |
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; |