diff --git a/generator/bindtests.ml b/generator/bindtests.ml index 78b0c8ddb..9f459ac2f 100644 --- a/generator/bindtests.ml +++ b/generator/bindtests.ml @@ -131,7 +131,8 @@ print_strings (guestfs_h *g, char *const *argv) | String n | FileIn n | FileOut n - | Key n -> pr " fprintf (fp, \"%%s\\n\", %s);\n" n + | Key n + | GUID n -> pr " fprintf (fp, \"%%s\\n\", %s);\n" n | BufferIn n -> pr " {\n"; pr " size_t i;\n"; diff --git a/generator/c.ml b/generator/c.ml index 5fbae74ce..e2d5754f2 100644 --- a/generator/c.ml +++ b/generator/c.ml @@ -122,7 +122,8 @@ let rec generate_prototype ?(extern = true) ?(static = false) | Device n | Dev_or_Path n | String n | OptString n - | Key n -> + | Key n + | GUID n -> next (); pr "const char *%s" n | Mountable n | Mountable_or_Path n -> @@ -1243,7 +1244,8 @@ and generate_client_actions hash () = | StringList n | DeviceList n | Key n - | Pointer (_, n) -> + | Pointer (_, n) + | GUID n -> pr " if (%s == NULL) {\n" n; pr " error (g, \"%%s: %%s: parameter cannot be NULL\",\n"; pr " \"%s\", \"%s\");\n" c_name n; @@ -1356,7 +1358,8 @@ and generate_client_actions hash () = | Pathname n | Dev_or_Path n | Mountable_or_Path n | FileIn n - | FileOut n -> + | FileOut n + | GUID n -> (* guestfish doesn't support string escaping, so neither do we *) pr " fprintf (trace_buffer.fp, \" \\\"%%s\\\"\", %s);\n" n | Key n -> @@ -1678,7 +1681,7 @@ and generate_client_actions hash () = function | Pathname n | Device n | Mountable n | Dev_or_Path n | Mountable_or_Path n | String n - | Key n -> + | Key n | GUID n -> pr " args.%s = (char *) %s;\n" n n | OptString n -> pr " args.%s = %s ? (char **) &%s : NULL;\n" n n n diff --git a/generator/csharp.ml b/generator/csharp.ml index 536f532a6..c2b01bad2 100644 --- a/generator/csharp.ml +++ b/generator/csharp.ml @@ -192,7 +192,8 @@ namespace Guestfs | OptString n | FileIn n | FileOut n | Key n - | BufferIn n -> + | BufferIn n + | GUID n -> pr ", [In] string %s" n | StringList n | DeviceList n -> pr ", [In] string[] %s" n @@ -220,7 +221,8 @@ namespace Guestfs | OptString n | FileIn n | FileOut n | Key n - | BufferIn n -> + | BufferIn n + | GUID n -> next (); pr "string %s" n | StringList n | DeviceList n -> next (); pr "string[] %s" n diff --git a/generator/daemon.ml b/generator/daemon.ml index 8a759f7c8..548982b52 100644 --- a/generator/daemon.ml +++ b/generator/daemon.ml @@ -250,7 +250,7 @@ cleanup_free_mountable (mountable_t *mountable) function | Device n | Dev_or_Path n -> pr " CLEANUP_FREE char *%s = NULL;\n" n - | Pathname n | String n | Key n | OptString n -> + | Pathname n | String n | Key n | OptString n | GUID n -> pr " const char *%s;\n" n | Mountable n | Mountable_or_Path n -> pr " CLEANUP_FREE_MOUNTABLE mountable_t %s\n" n; @@ -346,7 +346,7 @@ cleanup_free_mountable (mountable_t *mountable) | Mountable_or_Path n -> pr " REQUIRE_ROOT_OR_RESOLVE_MOUNTABLE (args.%s, %s, %s, goto done);\n" n n (if is_filein then "cancel_receive ()" else ""); - | String n | Key n -> pr_args n + | String n | Key n | GUID n -> pr_args n | OptString n -> pr " %s = args.%s ? *args.%s : NULL;\n" n n n | StringList n -> pr " /* Ugly, but safe and avoids copying the strings. */\n"; diff --git a/generator/erlang.ml b/generator/erlang.ml index b52cf1f38..f0c9c6af6 100644 --- a/generator/erlang.ml +++ b/generator/erlang.ml @@ -297,7 +297,8 @@ extern int64_t get_int64 (ETERM *term); | String n | FileIn n | FileOut n - | Key n -> + | Key n + | GUID n -> pr " CLEANUP_FREE char *%s = erl_iolist_to_string (ARG (%d));\n" n i | OptString n -> pr " CLEANUP_FREE char *%s;\n" n; diff --git a/generator/fish.ml b/generator/fish.ml index 7bde1ff19..477fb29b7 100644 --- a/generator/fish.ml +++ b/generator/fish.ml @@ -326,7 +326,8 @@ Guestfish will prompt for these separately." function | Device n | Mountable n | String n - | OptString n -> pr " const char *%s;\n" n + | OptString n + | GUID n -> pr " const char *%s;\n" n | Pathname n | Dev_or_Path n | Mountable_or_Path n | FileIn n @@ -420,7 +421,7 @@ Guestfish will prompt for these separately." List.iter ( function | Device name | Mountable name - | String name -> + | String name | GUID name -> pr " %s = argv[i++];\n" name | Pathname name | Dev_or_Path name | Mountable_or_Path name -> @@ -633,7 +634,8 @@ Guestfish will prompt for these separately." function | Device _ | Mountable _ | String _ | OptString _ - | BufferIn _ -> () + | BufferIn _ + | GUID _ -> () | Bool name | Int name | Int64 name -> pr " out_%s:\n" name @@ -865,7 +867,8 @@ and generate_fish_actions_pod () = List.iter ( function | Pathname n | Device n | Mountable n - | Dev_or_Path n | Mountable_or_Path n | String n -> + | Dev_or_Path n | Mountable_or_Path n | String n + | GUID n -> pr " %s" n | OptString n -> pr " %s" n | StringList n | DeviceList n -> pr " '%s ...'" n diff --git a/generator/gobject.ml b/generator/gobject.ml index 4159c1e84..3cbc9c070 100644 --- a/generator/gobject.ml +++ b/generator/gobject.ml @@ -81,7 +81,8 @@ let generate_gobject_proto name ?(single_line = true) | OptString n | Key n | FileIn n - | FileOut n -> + | FileOut n + | GUID n -> pr "const gchar *%s" n | StringList n | DeviceList n -> @@ -1031,7 +1032,7 @@ guestfs_session_close(GuestfsSession *session, GError **err) pr " (type gint32):" | Int64 _ -> pr " (type gint64):" - | String _ | Key _ -> + | String _ | Key _ | GUID _ -> pr " (transfer none) (type utf8):" | OptString _ -> pr " (transfer none) (type utf8) (allow-none):" @@ -1190,7 +1191,8 @@ guestfs_session_close(GuestfsSession *session, GError **err) | Bool n | Int n | Int64 n | String n | Device n | Mountable n | Pathname n | Dev_or_Path n | Mountable_or_Path n | OptString n | StringList n - | DeviceList n | Key n | FileIn n | FileOut n -> + | DeviceList n | Key n | FileIn n | FileOut n + | GUID n -> pr "%s" n | Pointer _ -> failwith "gobject bindings do not support Pointer arguments" diff --git a/generator/golang.ml b/generator/golang.ml index 82c1a0d96..e67ca1b72 100644 --- a/generator/golang.ml +++ b/generator/golang.ml @@ -311,7 +311,8 @@ func return_hashtable (argv **C.char) map[string]string { | Dev_or_Path n | Mountable_or_Path n | Key n - | FileIn n | FileOut n -> pr "%s string" n + | FileIn n | FileOut n + | GUID n -> pr "%s string" n | OptString n -> pr "%s *string" n | StringList n | DeviceList n -> pr "%s []string" n @@ -366,7 +367,8 @@ func return_hashtable (argv **C.char) map[string]string { | Dev_or_Path n | Mountable_or_Path n | Key n - | FileIn n | FileOut n -> + | FileIn n | FileOut n + | GUID n -> pr "\n"; pr " c_%s := C.CString (%s)\n" n n; pr " defer C.free (unsafe.Pointer (c_%s))\n" n @@ -450,7 +452,8 @@ func return_hashtable (argv **C.char) map[string]string { | Mountable_or_Path n | OptString n | Key n - | FileIn n | FileOut n -> pr "c_%s" n + | FileIn n | FileOut n + | GUID n -> pr "c_%s" n | StringList n | DeviceList n -> pr "c_%s" n | BufferIn n -> pr "c_%s, C.size_t (len (%s))" n n diff --git a/generator/haskell.ml b/generator/haskell.ml index 0329311b9..ca2a1ce27 100644 --- a/generator/haskell.ml +++ b/generator/haskell.ml @@ -142,7 +142,7 @@ assocListOfHashtable (a:b:rest) = (a,b) : assocListOfHashtable rest | FileOut n | Pathname n | Device n | Mountable n | Dev_or_Path n | Mountable_or_Path n | String n - | Key n -> + | Key n | GUID n -> pr "withCString %s $ \\%s -> " n n | BufferIn n -> pr "withCStringLen %s $ \\(%s, %s_size) -> " n n n @@ -162,7 +162,7 @@ assocListOfHashtable (a:b:rest) = (a,b) : assocListOfHashtable rest | Dev_or_Path n | Mountable_or_Path n | String n | OptString n | StringList n | DeviceList n - | Key n -> n + | Key n | GUID n -> n | BufferIn n -> sprintf "%s (fromIntegral %s_size)" n n ) args in pr "withForeignPtr h (\\p -> c_%s %s)\n" name @@ -218,7 +218,7 @@ and generate_haskell_prototype ~handle ?(hs = false) (ret, args, optargs) = (match arg with | Pathname _ | Device _ | Mountable _ | Dev_or_Path _ | Mountable_or_Path _ | String _ - | Key _ -> + | Key _ | GUID _ -> pr "CString" | BufferIn _ -> pr "CString -> CInt" @@ -261,7 +261,7 @@ and generate_haskell_prototype ~handle ?(hs = false) (ret, args, optargs) = (match arg with | Pathname _ | Device _ | Mountable _ | Dev_or_Path _ | Mountable_or_Path _ | String _ - | Key _ -> + | Key _ | GUID _ -> pr "String" | BufferIn _ -> pr "String" diff --git a/generator/java.ml b/generator/java.ml index ec89f3ba3..2e5448392 100644 --- a/generator/java.ml +++ b/generator/java.ml @@ -452,7 +452,8 @@ and generate_java_prototype ?(public=false) ?(privat=false) ?(native=false) | OptString n | FileIn n | FileOut n - | Key n -> + | Key n + | GUID n -> pr "String %s" n | BufferIn n -> pr "byte[] %s" n @@ -812,7 +813,8 @@ get_all_event_callbacks (guestfs_h *g, size_t *len_rtn) | OptString n | FileIn n | FileOut n - | Key n -> + | Key n + | GUID n -> pr ", jstring j%s" n | BufferIn n -> pr ", jbyteArray j%s" n @@ -881,7 +883,8 @@ get_all_event_callbacks (guestfs_h *g, size_t *len_rtn) | OptString n | FileIn n | FileOut n - | Key n -> + | Key n + | GUID n -> pr " const char *%s;\n" n | BufferIn n -> pr " char *%s;\n" n; @@ -937,7 +940,8 @@ get_all_event_callbacks (guestfs_h *g, size_t *len_rtn) | String n | FileIn n | FileOut n - | Key n -> + | Key n + | GUID n -> pr " %s = (*env)->GetStringUTFChars (env, j%s, NULL);\n" n n | OptString n -> (* This is completely undocumented, but Java null becomes @@ -1004,7 +1008,8 @@ get_all_event_callbacks (guestfs_h *g, size_t *len_rtn) | String n | FileIn n | FileOut n - | Key n -> + | Key n + | GUID n -> pr " (*env)->ReleaseStringUTFChars (env, j%s, %s);\n" n n | OptString n -> pr " if (j%s)\n" n; diff --git a/generator/lua.ml b/generator/lua.ml index 3d7c23831..9bd4006d3 100644 --- a/generator/lua.ml +++ b/generator/lua.ml @@ -461,7 +461,7 @@ guestfs_lua_delete_event_callback (lua_State *L) function | Pathname n | Device n | Mountable n | Dev_or_Path n | Mountable_or_Path n | String n - | FileIn n | FileOut n | Key n -> + | FileIn n | FileOut n | Key n | GUID n -> pr " const char *%s;\n" n | BufferIn n -> pr " const char *%s;\n" n; @@ -492,7 +492,7 @@ guestfs_lua_delete_event_callback (lua_State *L) function | Pathname n | Device n | Mountable n | Dev_or_Path n | Mountable_or_Path n | String n - | FileIn n | FileOut n | Key n -> + | FileIn n | FileOut n | Key n | GUID n -> pr " %s = luaL_checkstring (L, %d);\n" n i | BufferIn n -> pr " %s = luaL_checklstring (L, %d, &%s_size);\n" n i n @@ -556,7 +556,7 @@ guestfs_lua_delete_event_callback (lua_State *L) | FileIn _ | FileOut _ | Key _ | BufferIn _ | OptString _ | Bool _ | Int _ | Int64 _ - | Pointer _ -> () + | Pointer _ | GUID _ -> () | StringList n | DeviceList n -> pr " free (%s);\n" n ) args; diff --git a/generator/ocaml.ml b/generator/ocaml.ml index 2e8fc6414..78cff89e0 100644 --- a/generator/ocaml.ml +++ b/generator/ocaml.ml @@ -501,7 +501,8 @@ copy_table (char * const * argv) | String n | FileIn n | FileOut n - | Key n -> + | Key n + | GUID n -> (* Copy strings in case the GC moves them: RHBZ#604691 *) pr " char *%s = guestfs___safe_strdup (g, String_val (%sv));\n" n n | OptString n -> @@ -585,7 +586,8 @@ copy_table (char * const * argv) function | Pathname n | Device n | Mountable n | Dev_or_Path n | Mountable_or_Path n | String n - | OptString n | FileIn n | FileOut n | BufferIn n | Key n -> + | OptString n | FileIn n | FileOut n | BufferIn n + | Key n | GUID n -> pr " free (%s);\n" n | StringList n | DeviceList n -> pr " guestfs___free_string_list (%s);\n" n; @@ -715,7 +717,8 @@ and generate_ocaml_function_type ?(extra_unit = false) (ret, args, optargs) = function | Pathname _ | Device _ | Mountable _ | Dev_or_Path _ | Mountable_or_Path _ | String _ - | FileIn _ | FileOut _ | BufferIn _ | Key _ -> pr "string -> " + | FileIn _ | FileOut _ | BufferIn _ | Key _ + | GUID _ -> pr "string -> " | OptString _ -> pr "string option -> " | StringList _ | DeviceList _ -> pr "string array -> " | Bool _ -> pr "bool -> " diff --git a/generator/perl.ml b/generator/perl.ml index a87ea26c9..9d368a2cb 100644 --- a/generator/perl.ml +++ b/generator/perl.ml @@ -354,7 +354,7 @@ PREINIT: function | Pathname n | Device n | Mountable n | Dev_or_Path n | Mountable_or_Path n | String n - | FileIn n | FileOut n | Key n -> + | FileIn n | FileOut n | Key n | GUID n -> pr " char *%s;\n" n | BufferIn n -> pr " char *%s;\n" n; @@ -509,7 +509,7 @@ PREINIT: | Dev_or_Path _ | Mountable_or_Path _ | String _ | OptString _ | Bool _ | Int _ | Int64 _ | FileIn _ | FileOut _ - | BufferIn _ | Key _ | Pointer _ -> () + | BufferIn _ | Key _ | Pointer _ | GUID _ -> () | StringList n | DeviceList n -> pr " free (%s);\n" n ) args; @@ -937,7 +937,7 @@ errnos: | Dev_or_Path n -> pr "[ '%s', 'string(dev_or_path)', %d ]" n i | Mountable_or_Path n -> pr "[ '%s', 'string(mountable_or_path)', %d ]" n i - | String n -> pr "[ '%s', 'string', %d ]" n i + | String n | GUID n -> pr "[ '%s', 'string', %d ]" n i | FileIn n -> pr "[ '%s', 'string(filename)', %d ]" n i | FileOut n -> pr "[ '%s', 'string(filename)', %d ]" n i | Key n -> pr "[ '%s', 'string(key)', %d ]" n i @@ -1105,7 +1105,7 @@ and generate_perl_prototype name (ret, args, optargs) = | Pathname n | Device n | Mountable n | Dev_or_Path n | Mountable_or_Path n | String n | OptString n | Bool n | Int n | Int64 n | FileIn n | FileOut n - | BufferIn n | Key n | Pointer (_, n) -> + | BufferIn n | Key n | Pointer (_, n) | GUID n -> pr "$%s" n | StringList n | DeviceList n -> pr "\\@%s" n diff --git a/generator/php.ml b/generator/php.ml index b7526f682..580b10fcc 100644 --- a/generator/php.ml +++ b/generator/php.ml @@ -192,7 +192,8 @@ PHP_FUNCTION (guestfs_last_error) | Dev_or_Path n | Mountable_or_Path n | FileIn n | FileOut n | Key n | OptString n - | BufferIn n -> + | BufferIn n + | GUID n -> pr " char *%s;\n" n; pr " int %s_size;\n" n | StringList n @@ -235,7 +236,8 @@ PHP_FUNCTION (guestfs_last_error) function | String n | Device n | Mountable n | Pathname n | Dev_or_Path n | Mountable_or_Path n - | FileIn n | FileOut n | BufferIn n | Key n -> "s" + | FileIn n | FileOut n | BufferIn n | Key n + | GUID n -> "s" | OptString n -> "s!" | StringList n | DeviceList n -> "a" | Bool n -> "b" @@ -269,7 +271,7 @@ PHP_FUNCTION (guestfs_last_error) | String n | Device n | Mountable n | Pathname n | Dev_or_Path n | Mountable_or_Path n | FileIn n | FileOut n | BufferIn n | Key n - | OptString n -> + | OptString n | GUID n -> pr ", &%s, &%s_size" n n | StringList n | DeviceList n -> pr ", &z_%s" n @@ -303,7 +305,7 @@ PHP_FUNCTION (guestfs_last_error) | String n | Device n | Mountable n | Pathname n | Dev_or_Path n | Mountable_or_Path n | FileIn n | FileOut n | Key n - | OptString n -> + | OptString n | GUID n -> (* Just need to check the string doesn't contain any ASCII * NUL characters, which won't be supported by the C API. *) @@ -434,7 +436,7 @@ PHP_FUNCTION (guestfs_last_error) | String n | Device n | Mountable n | Pathname n | Dev_or_Path n | Mountable_or_Path n | FileIn n | FileOut n | Key n - | OptString n -> () + | OptString n | GUID n -> () | BufferIn n -> () | StringList n | DeviceList n -> diff --git a/generator/python.ml b/generator/python.ml index c6bfaaa44..607ca8824 100644 --- a/generator/python.ml +++ b/generator/python.ml @@ -281,7 +281,7 @@ put_table (char * const * const argv) function | Pathname n | Device n | Mountable n | Dev_or_Path n | Mountable_or_Path n | String n | Key n - | FileIn n | FileOut n -> + | FileIn n | FileOut n | GUID n -> pr " const char *%s;\n" n | OptString n -> pr " const char *%s;\n" n | BufferIn n -> @@ -319,7 +319,7 @@ put_table (char * const * const argv) function | Pathname _ | Device _ | Mountable _ | Dev_or_Path _ | Mountable_or_Path _ | String _ | Key _ - | FileIn _ | FileOut _ -> pr "s" + | FileIn _ | FileOut _ | GUID _ -> pr "s" | OptString _ -> pr "z" | StringList _ | DeviceList _ -> pr "O" | Bool _ -> pr "i" (* XXX Python has booleans? *) @@ -341,7 +341,7 @@ put_table (char * const * const argv) function | Pathname n | Device n | Mountable n | Dev_or_Path n | Mountable_or_Path n | String n | Key n - | FileIn n | FileOut n -> pr ", &%s" n + | FileIn n | FileOut n | GUID n -> pr ", &%s" n | OptString n -> pr ", &%s" n | StringList n | DeviceList n -> pr ", &py_%s" n | Bool n -> pr ", &%s" n @@ -365,7 +365,7 @@ put_table (char * const * const argv) | Pathname _ | Device _ | Mountable _ | Dev_or_Path _ | Mountable_or_Path _ | String _ | Key _ | FileIn _ | FileOut _ | OptString _ | Bool _ | Int _ | Int64 _ - | BufferIn _ -> () + | BufferIn _ | GUID _ -> () | StringList n | DeviceList n -> pr " %s = get_string_list (py_%s);\n" n n; pr " if (!%s) goto out;\n" n @@ -502,7 +502,7 @@ put_table (char * const * const argv) | Pathname _ | Device _ | Mountable _ | Dev_or_Path _ | Mountable_or_Path _ | String _ | Key _ | FileIn _ | FileOut _ | OptString _ | Bool _ | Int _ | Int64 _ - | BufferIn _ | Pointer _ -> () + | BufferIn _ | Pointer _ | GUID _ -> () | StringList n | DeviceList n -> pr " free (%s);\n" n ) args; @@ -796,7 +796,7 @@ class GuestFS(object): | Pathname _ | Device _ | Mountable _ | Dev_or_Path _ | Mountable_or_Path _ | String _ | Key _ | FileIn _ | FileOut _ | OptString _ | Bool _ | Int _ | Int64 _ - | BufferIn _ | Pointer _ -> () + | BufferIn _ | Pointer _ | GUID _ -> () | StringList n | DeviceList n -> pr " %s = list (%s)\n" n n ) args; diff --git a/generator/ruby.ml b/generator/ruby.ml index 6ba09dd4c..f2d700ee9 100644 --- a/generator/ruby.ml +++ b/generator/ruby.ml @@ -571,7 +571,7 @@ get_all_event_callbacks (guestfs_h *g, size_t *len_rtn) function | Pathname n | Device n | Mountable n | Dev_or_Path n | Mountable_or_Path n | String n | Key n - | FileIn n | FileOut n -> + | FileIn n | FileOut n | GUID n -> pr " const char *%s = StringValueCStr (%sv);\n" n n; | BufferIn n -> pr " Check_Type (%sv, T_STRING);\n" n; @@ -675,7 +675,7 @@ get_all_event_callbacks (guestfs_h *g, size_t *len_rtn) | Pathname _ | Device _ | Mountable _ | Dev_or_Path _ | Mountable_or_Path _ | String _ | Key _ | FileIn _ | FileOut _ | OptString _ | Bool _ | Int _ | Int64 _ - | BufferIn _ | Pointer _ -> () + | BufferIn _ | Pointer _ | GUID _ -> () | StringList n | DeviceList n -> pr " free (%s);\n" n ) args; diff --git a/generator/tests_c_api.ml b/generator/tests_c_api.ml index 08ac13f78..c0ebcb9b2 100644 --- a/generator/tests_c_api.ml +++ b/generator/tests_c_api.ml @@ -384,7 +384,8 @@ and generate_test_command_call ?(expect_error = false) ?test ?ret test_name cmd= | Mountable_or_Path _, arg, sym | String _, arg, sym | OptString _, arg, sym - | Key _, arg, sym -> + | Key _, arg, sym + | GUID _, arg, sym -> pr " const char *%s = \"%s\";\n" sym (c_quote arg); | BufferIn _, arg, sym -> pr " const char *%s = \"%s\";\n" sym (c_quote arg); @@ -504,7 +505,8 @@ and generate_test_command_call ?(expect_error = false) ?test ?ret test_name cmd= | String _, _, sym | OptString _, _, sym | Key _, _, sym - | FileIn _, _, sym -> pr ", %s" sym + | FileIn _, _, sym + | GUID _, _, sym -> pr ", %s" sym | BufferIn _, _, sym -> pr ", %s, %s_size" sym sym | FileOut _, arg, _ -> pr ", \"%s\"" (c_quote arg) | StringList _, _, sym | DeviceList _, _, sym -> pr ", (char **) %s" sym diff --git a/generator/types.ml b/generator/types.ml index 2827ea0d0..48ac32a51 100644 --- a/generator/types.ml +++ b/generator/types.ml @@ -184,6 +184,12 @@ and argt = * tests, although we should fix this in future. *) | Pointer of (string * string) + (* const char * which represents a GUID string. + * + * It cannot be NULL, and it will be validated using + * guestfs___validate_guid. + *) + | GUID of string and optargs = optargt list diff --git a/generator/utils.ml b/generator/utils.ml index 5828bbdd7..ecb35fd63 100644 --- a/generator/utils.ml +++ b/generator/utils.ml @@ -253,7 +253,8 @@ let name_of_argt = function | Pathname n | Device n | Mountable n | Dev_or_Path n | Mountable_or_Path n | String n | OptString n | StringList n | DeviceList n | Bool n | Int n | Int64 n - | FileIn n | FileOut n | BufferIn n | Key n | Pointer (_, n) -> n + | FileIn n | FileOut n | BufferIn n | Key n | Pointer (_, n) + | GUID n -> n let name_of_optargt = function | OBool n | OInt n | OInt64 n | OString n | OStringList n -> n diff --git a/generator/xdr.ml b/generator/xdr.ml index aa1fd5d56..257702a38 100644 --- a/generator/xdr.ml +++ b/generator/xdr.ml @@ -112,7 +112,7 @@ let generate_xdr () = function | Pathname n | Device n | Mountable n | Dev_or_Path n | Mountable_or_Path n | String n - | Key n -> + | Key n | GUID n -> pr " string %s<>;\n" n | OptString n -> pr " guestfs_str *%s;\n" n | StringList n | DeviceList n -> pr " guestfs_str %s<>;\n" n