dbus: expose whether we have a hardware watchdog on the bus

This commit is contained in:
Lennart Poettering 2012-04-13 19:45:53 +02:00
parent 186b97d99f
commit 2dad62205f
1 changed files with 17 additions and 1 deletions

View File

@ -242,7 +242,8 @@
" <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 \
@ -493,6 +494,20 @@ static int bus_manager_send_unit_files_changed(Manager *m) {
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"
@ -534,6 +549,7 @@ static const BusProperty bus_manager_properties[] = {
{ "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 },