libxl: add is_default checkers for string and timer_mode types
authorRoger Pau Monne <roger.pau@citrix.com>
Thu, 28 Sep 2017 11:04:06 +0000 (12:04 +0100)
committerRoger Pau Monne <roger.pau@citrix.com>
Thu, 28 Sep 2017 11:04:06 +0000 (12:04 +0100)
Those types are missing a helper to check whether a definition of the
type holds the default value. This will be required by a later patch
that will implement deprecation of fields inside of a libxl type.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
tools/libxl/idl.py
tools/libxl/libxl_internal.h
tools/libxl/libxl_types.idl

index 437049ebb9bded14f948880f98571ba99dfba924..a4a084e1ce84442bbb6b7e936a52e7b1e1a5d698 100644 (file)
@@ -302,7 +302,8 @@ string = Builtin("char *", namespace = None, copy_fn = "libxl_string_copy", disp
                  json_gen_fn = "libxl__string_gen_json",
                  json_parse_type = "JSON_STRING | JSON_NULL",
                  json_parse_fn = "libxl__string_parse_json",
-                 autogenerate_json = False)
+                 autogenerate_json = False,
+                 check_default_fn="libxl__string_is_default")
 
 class Array(Type):
     """An array of the same type"""
index 8b71517340a9d0774781527737181c3015a44d82..e4c3c8853e625d8fa6a9195e05adbb9e5c1c7b37 100644 (file)
@@ -4359,6 +4359,16 @@ void* libxl__device_list(libxl__gc *gc, const struct libxl_device_type *dt,
                          uint32_t domid, int *num);
 void libxl__device_list_free(const struct libxl_device_type *dt,
                              void *list, int num);
+
+static inline bool libxl__timer_mode_is_default(libxl_timer_mode *tm)
+{
+    return *tm == LIBXL_TIMER_MODE_DEFAULT;
+}
+
+static inline bool libxl__string_is_default(char **s)
+{
+    return *s == NULL;
+}
 #endif
 
 /*
index dc3544873c8188d09572bd5f8a0d9b22a8e31700..6b56954bc3747d3cb64bbe6fef99a36750958890 100644 (file)
@@ -173,7 +173,8 @@ libxl_timer_mode = Enumeration("timer_mode", [
     (1, "no_delay_for_missed_ticks"),
     (2, "no_missed_ticks_pending"),
     (3, "one_missed_tick_pending"),
-    ], init_val = "LIBXL_TIMER_MODE_DEFAULT")
+    ], init_val = "LIBXL_TIMER_MODE_DEFAULT",
+       check_default_fn = "libxl__timer_mode_is_default")
 
 libxl_bios_type = Enumeration("bios_type", [
     (0, "unknown"),