" <property name=\"DefaultStandardOutput\" type=\"s\" access=\"read\"/>\n" \
" <property name=\"DefaultStandardError\" type=\"s\" access=\"read\"/>\n" \
" <property name=\"RuntimeWatchdogUSec\" type=\"s\" access=\"read\"/>\n" \
- " <property name=\"ShutdownWatchdogUSec\" type=\"s\" access=\"read\"/>\n"
+ " <property name=\"ShutdownWatchdogUSec\" type=\"s\" access=\"read\"/>\n" \
+ " <property name=\"HaveWatchdog\" type=\"b\" access=\"read\"/>\n"
#ifdef HAVE_SYSV_COMPAT
#define BUS_MANAGER_INTERFACE_PROPERTIES_SYSV \
return r;
}
+static int bus_manager_append_have_watchdog(DBusMessageIter *i, const char *property, void *data) {
+ dbus_bool_t b;
+
+ assert(i);
+ assert(property);
+
+ b = access("/dev/watchdog", F_OK) >= 0;
+
+ if (!dbus_message_iter_append_basic(i, DBUS_TYPE_BOOLEAN, &b))
+ return -ENOMEM;
+
+ return 0;
+}
+
static const char systemd_property_string[] =
PACKAGE_STRING "\0"
DISTRIBUTION "\0"
{ "DefaultStandardError", bus_manager_append_exec_output, "s", offsetof(Manager, default_std_error) },
{ "RuntimeWatchdogUSec", bus_property_append_usec, "t", offsetof(Manager, runtime_watchdog), },
{ "ShutdownWatchdogUSec", bus_property_append_usec, "t", offsetof(Manager, shutdown_watchdog), },
+ { "HaveWatchdog", bus_manager_append_have_watchdog, "b", 0 },
#ifdef HAVE_SYSV_COMPAT
{ "SysVConsole", bus_property_append_bool, "b", offsetof(Manager, sysv_console) },
{ "SysVInitPath", bus_property_append_strv, "as", offsetof(Manager, lookup_paths.sysvinit_path), true },