diff --git a/gdbus/interfaces/openbmc_intf.h b/gdbus/interfaces/openbmc_intf.h
index ac7603e..060b0e0 100644
--- a/gdbus/interfaces/openbmc_intf.h
+++ b/gdbus/interfaces/openbmc_intf.h
@@ -1,5 +1,5 @@
 /*
- * Generated by gdbus-codegen 2.40.2. DO NOT EDIT.
+ * Generated by gdbus-codegen 2.44.1. DO NOT EDIT.
  *
  * The license of this code is the same as for the source it was derived from.
  */
@@ -2421,6 +2421,125 @@
 
 
 /* ------------------------------------------------------------------------ */
+/* Declarations for org.openbmc.control.Checkstop */
+
+#define TYPE_CONTROL_CHECKSTOP (control_checkstop_get_type ())
+#define CONTROL_CHECKSTOP(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_CONTROL_CHECKSTOP, ControlCheckstop))
+#define IS_CONTROL_CHECKSTOP(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_CONTROL_CHECKSTOP))
+#define CONTROL_CHECKSTOP_GET_IFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), TYPE_CONTROL_CHECKSTOP, ControlCheckstopIface))
+
+struct _ControlCheckstop;
+typedef struct _ControlCheckstop ControlCheckstop;
+typedef struct _ControlCheckstopIface ControlCheckstopIface;
+
+struct _ControlCheckstopIface
+{
+  GTypeInterface parent_iface;
+};
+
+GType control_checkstop_get_type (void) G_GNUC_CONST;
+
+GDBusInterfaceInfo *control_checkstop_interface_info (void);
+guint control_checkstop_override_properties (GObjectClass *klass, guint property_id_begin);
+
+
+/* ---- */
+
+#define TYPE_CONTROL_CHECKSTOP_PROXY (control_checkstop_proxy_get_type ())
+#define CONTROL_CHECKSTOP_PROXY(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_CONTROL_CHECKSTOP_PROXY, ControlCheckstopProxy))
+#define CONTROL_CHECKSTOP_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_CONTROL_CHECKSTOP_PROXY, ControlCheckstopProxyClass))
+#define CONTROL_CHECKSTOP_PROXY_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_CONTROL_CHECKSTOP_PROXY, ControlCheckstopProxyClass))
+#define IS_CONTROL_CHECKSTOP_PROXY(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_CONTROL_CHECKSTOP_PROXY))
+#define IS_CONTROL_CHECKSTOP_PROXY_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_CONTROL_CHECKSTOP_PROXY))
+
+typedef struct _ControlCheckstopProxy ControlCheckstopProxy;
+typedef struct _ControlCheckstopProxyClass ControlCheckstopProxyClass;
+typedef struct _ControlCheckstopProxyPrivate ControlCheckstopProxyPrivate;
+
+struct _ControlCheckstopProxy
+{
+  /*< private >*/
+  GDBusProxy parent_instance;
+  ControlCheckstopProxyPrivate *priv;
+};
+
+struct _ControlCheckstopProxyClass
+{
+  GDBusProxyClass parent_class;
+};
+
+GType control_checkstop_proxy_get_type (void) G_GNUC_CONST;
+
+void control_checkstop_proxy_new (
+    GDBusConnection     *connection,
+    GDBusProxyFlags      flags,
+    const gchar         *name,
+    const gchar         *object_path,
+    GCancellable        *cancellable,
+    GAsyncReadyCallback  callback,
+    gpointer             user_data);
+ControlCheckstop *control_checkstop_proxy_new_finish (
+    GAsyncResult        *res,
+    GError             **error);
+ControlCheckstop *control_checkstop_proxy_new_sync (
+    GDBusConnection     *connection,
+    GDBusProxyFlags      flags,
+    const gchar         *name,
+    const gchar         *object_path,
+    GCancellable        *cancellable,
+    GError             **error);
+
+void control_checkstop_proxy_new_for_bus (
+    GBusType             bus_type,
+    GDBusProxyFlags      flags,
+    const gchar         *name,
+    const gchar         *object_path,
+    GCancellable        *cancellable,
+    GAsyncReadyCallback  callback,
+    gpointer             user_data);
+ControlCheckstop *control_checkstop_proxy_new_for_bus_finish (
+    GAsyncResult        *res,
+    GError             **error);
+ControlCheckstop *control_checkstop_proxy_new_for_bus_sync (
+    GBusType             bus_type,
+    GDBusProxyFlags      flags,
+    const gchar         *name,
+    const gchar         *object_path,
+    GCancellable        *cancellable,
+    GError             **error);
+
+
+/* ---- */
+
+#define TYPE_CONTROL_CHECKSTOP_SKELETON (control_checkstop_skeleton_get_type ())
+#define CONTROL_CHECKSTOP_SKELETON(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), TYPE_CONTROL_CHECKSTOP_SKELETON, ControlCheckstopSkeleton))
+#define CONTROL_CHECKSTOP_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), TYPE_CONTROL_CHECKSTOP_SKELETON, ControlCheckstopSkeletonClass))
+#define CONTROL_CHECKSTOP_SKELETON_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), TYPE_CONTROL_CHECKSTOP_SKELETON, ControlCheckstopSkeletonClass))
+#define IS_CONTROL_CHECKSTOP_SKELETON(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), TYPE_CONTROL_CHECKSTOP_SKELETON))
+#define IS_CONTROL_CHECKSTOP_SKELETON_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), TYPE_CONTROL_CHECKSTOP_SKELETON))
+
+typedef struct _ControlCheckstopSkeleton ControlCheckstopSkeleton;
+typedef struct _ControlCheckstopSkeletonClass ControlCheckstopSkeletonClass;
+typedef struct _ControlCheckstopSkeletonPrivate ControlCheckstopSkeletonPrivate;
+
+struct _ControlCheckstopSkeleton
+{
+  /*< private >*/
+  GDBusInterfaceSkeleton parent_instance;
+  ControlCheckstopSkeletonPrivate *priv;
+};
+
+struct _ControlCheckstopSkeletonClass
+{
+  GDBusInterfaceSkeletonClass parent_class;
+};
+
+GType control_checkstop_skeleton_get_type (void) G_GNUC_CONST;
+
+ControlCheckstop *control_checkstop_skeleton_new (void);
+
+
+/* ------------------------------------------------------------------------ */
 /* Declarations for org.openbmc.Watchdog */
 
 #define TYPE_WATCHDOG (watchdog_get_type ())
@@ -4041,6 +4160,7 @@
 ControlBmc *object_get_control_bmc (Object *object);
 ControlHost *object_get_control_host (Object *object);
 ControlPower *object_get_control_power (Object *object);
+ControlCheckstop *object_get_control_checkstop (Object *object);
 Watchdog *object_get_watchdog (Object *object);
 EventLog *object_get_event_log (Object *object);
 Flash *object_get_flash (Object *object);
@@ -4061,6 +4181,7 @@
 ControlBmc *object_peek_control_bmc (Object *object);
 ControlHost *object_peek_control_host (Object *object);
 ControlPower *object_peek_control_power (Object *object);
+ControlCheckstop *object_peek_control_checkstop (Object *object);
 Watchdog *object_peek_watchdog (Object *object);
 EventLog *object_peek_event_log (Object *object);
 Flash *object_peek_flash (Object *object);
@@ -4133,6 +4254,7 @@
 void object_skeleton_set_control_bmc (ObjectSkeleton *object, ControlBmc *interface_);
 void object_skeleton_set_control_host (ObjectSkeleton *object, ControlHost *interface_);
 void object_skeleton_set_control_power (ObjectSkeleton *object, ControlPower *interface_);
+void object_skeleton_set_control_checkstop (ObjectSkeleton *object, ControlCheckstop *interface_);
 void object_skeleton_set_watchdog (ObjectSkeleton *object, Watchdog *interface_);
 void object_skeleton_set_event_log (ObjectSkeleton *object, EventLog *interface_);
 void object_skeleton_set_flash (ObjectSkeleton *object, Flash *interface_);
