diff options
author | Rukun Mao <rmao@google.com> | 2022-05-13 20:43:32 +0000 |
---|---|---|
committer | Aleksander Morgado <aleksander@aleksander.es> | 2022-06-09 08:32:13 +0000 |
commit | 3da84c207902b65b7b6a2de9c497966844f87dd9 (patch) | |
tree | 17c915338e26082af27f82fc95bc394bb3911d8a /src | |
parent | ac06052b97cc02e60ae1ed7a551727b3c14d6a22 (diff) |
suspend: add suspend/resume support with powerd on ChromeOS
ModemManager handles suspend and resume signals sent from powerd
Fixes https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/547
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 12 | ||||
-rw-r--r-- | src/main.c | 6 | ||||
-rw-r--r-- | src/meson.build | 7 | ||||
-rw-r--r-- | src/mm-base-bearer.c | 2 | ||||
-rw-r--r-- | src/mm-base-bearer.h | 4 | ||||
-rw-r--r-- | src/mm-base-manager.c | 2 | ||||
-rw-r--r-- | src/mm-base-manager.h | 2 | ||||
-rw-r--r-- | src/mm-base-modem.c | 4 | ||||
-rw-r--r-- | src/mm-base-modem.h | 4 | ||||
-rw-r--r-- | src/mm-bearer-list.c | 2 | ||||
-rw-r--r-- | src/mm-bearer-list.h | 2 | ||||
-rw-r--r-- | src/mm-bearer-mbim.c | 6 | ||||
-rw-r--r-- | src/mm-bearer-qmi.c | 2 | ||||
-rw-r--r-- | src/mm-broadband-bearer.c | 2 | ||||
-rw-r--r-- | src/mm-broadband-modem.c | 4 | ||||
-rw-r--r-- | src/mm-context.c | 6 | ||||
-rw-r--r-- | src/mm-context.h | 2 | ||||
-rw-r--r-- | src/mm-iface-modem-3gpp.c | 2 | ||||
-rw-r--r-- | src/mm-iface-modem-3gpp.h | 2 | ||||
-rw-r--r-- | src/mm-iface-modem-time.c | 2 | ||||
-rw-r--r-- | src/mm-iface-modem-time.h | 2 | ||||
-rw-r--r-- | src/mm-iface-modem.c | 2 | ||||
-rw-r--r-- | src/mm-iface-modem.h | 2 | ||||
-rw-r--r-- | src/mm-sleep-monitor-powerd.c | 171 | ||||
-rw-r--r-- | src/mm-sleep-monitor-systemd.c (renamed from src/mm-sleep-monitor.c) | 4 |
25 files changed, 221 insertions, 35 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index e4ca5f7a..2a2c30dd 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -399,7 +399,17 @@ nodist_ModemManager_SOURCES = $(DAEMON_ENUMS_GENERATED) # Additional suspend/resume support via systemd if WITH_SYSTEMD_SUSPEND_RESUME -ModemManager_SOURCES += mm-sleep-monitor.h mm-sleep-monitor.c +ModemManager_SOURCES += \ + mm-sleep-monitor.h \ + mm-sleep-monitor-systemd.c \ + $(NULL) +endif + +if WITH_POWERD_SUSPEND_RESUME +ModemManager_SOURCES += \ + mm-sleep-monitor.h \ + mm-sleep-monitor-powerd.c \ + $(NULL) endif # Additional QMI support in ModemManager @@ -31,7 +31,7 @@ #include "mm-base-manager.h" #include "mm-context.h" -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME # include "mm-sleep-monitor.h" #endif @@ -56,7 +56,7 @@ quit_cb (gpointer user_data) return FALSE; } -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME static void sleeping_cb (MMSleepMonitor *sleep_monitor) @@ -193,7 +193,7 @@ main (int argc, char *argv[]) name_lost_cb, NULL, NULL); -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME { MMSleepMonitor *sleep_monitor; diff --git a/src/meson.build b/src/meson.build index fdf6b09c..2d1faed7 100644 --- a/src/meson.build +++ b/src/meson.build @@ -266,7 +266,7 @@ endif # Additional suspend/resume support via systemd if enable_systemd_suspend_resume - sources += files('mm-sleep-monitor.c') + sources += files('mm-sleep-monitor-systemd.c') deps += [ gio_unix_dep, @@ -274,6 +274,11 @@ if enable_systemd_suspend_resume ] endif +#suspend/resume support via powerd +if enable_powerd_suspend_resume + sources += files('mm-sleep-monitor-powerd.c') +endif + if enable_polkit deps += polkit_gobject_dep endif diff --git a/src/mm-base-bearer.c b/src/mm-base-bearer.c index f8d8e73a..64a19a97 100644 --- a/src/mm-base-bearer.c +++ b/src/mm-base-bearer.c @@ -1604,7 +1604,7 @@ mm_base_bearer_report_connection_status_detailed (MMBaseBearer *self /*****************************************************************************/ -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME typedef struct _SyncingContext SyncingContext; static void interface_syncing_step (GTask *task); diff --git a/src/mm-base-bearer.h b/src/mm-base-bearer.h index c497a6d5..336b4442 100644 --- a/src/mm-base-bearer.h +++ b/src/mm-base-bearer.h @@ -149,7 +149,7 @@ struct _MMBaseBearerClass { GAsyncResult *res, GError **error); -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME /* Reload connection status: * @@ -226,7 +226,7 @@ void mm_base_bearer_report_speeds (MMBaseBearer *self, guint64 uplink_speed, guint64 downlink_speed); -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME /* Sync Broadband Bearer (async) */ void mm_base_bearer_sync (MMBaseBearer *self, diff --git a/src/mm-base-manager.c b/src/mm-base-manager.c index 46f1ad43..13a98ebc 100644 --- a/src/mm-base-manager.c +++ b/src/mm-base-manager.c @@ -727,7 +727,7 @@ mm_base_manager_num_modems (MMBaseManager *self) /*****************************************************************************/ /* Quick resume synchronization */ -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME static void base_modem_sync_ready (MMBaseModem *self, diff --git a/src/mm-base-manager.h b/src/mm-base-manager.h index be51d0c0..e913f497 100644 --- a/src/mm-base-manager.h +++ b/src/mm-base-manager.h @@ -66,7 +66,7 @@ void mm_base_manager_start (MMBaseManager *manager, void mm_base_manager_shutdown (MMBaseManager *manager, gboolean disable); -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME void mm_base_manager_sync (MMBaseManager *manager); #endif diff --git a/src/mm-base-modem.c b/src/mm-base-modem.c index 9dc26601..e7c49025 100644 --- a/src/mm-base-modem.c +++ b/src/mm-base-modem.c @@ -629,7 +629,7 @@ mm_base_modem_wait_link_port (MMBaseModem *self, /******************************************************************************/ -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME gboolean mm_base_modem_sync_finish (MMBaseModem *self, @@ -675,7 +675,7 @@ mm_base_modem_sync (MMBaseModem *self, task); } -#endif /* WITH_SYSTEMD_SUSPEND_RESUME */ +#endif /* WITH_SUSPEND_RESUME */ /******************************************************************************/ diff --git a/src/mm-base-modem.h b/src/mm-base-modem.h index 1b7a2219..24eba82b 100644 --- a/src/mm-base-modem.h +++ b/src/mm-base-modem.h @@ -109,7 +109,7 @@ struct _MMBaseModemClass { GAsyncResult *res, GError **error); -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME /* Modem synchronization. * When resuming in quick suspend/resume mode, * this method triggers a synchronization of all modem interfaces */ @@ -245,7 +245,7 @@ gboolean mm_base_modem_disable_finish (MMBaseModem *self, GAsyncResult *res, GError **error); -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME void mm_base_modem_sync (MMBaseModem *self, GAsyncReadyCallback callback, diff --git a/src/mm-bearer-list.c b/src/mm-bearer-list.c index 790115eb..42e6b3ba 100644 --- a/src/mm-bearer-list.c +++ b/src/mm-bearer-list.c @@ -277,7 +277,7 @@ mm_bearer_list_disconnect_all_bearers (MMBearerList *self, /*****************************************************************************/ -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME typedef struct { GList *pending; diff --git a/src/mm-bearer-list.h b/src/mm-bearer-list.h index 8f3c8d49..50338fdf 100644 --- a/src/mm-bearer-list.h +++ b/src/mm-bearer-list.h @@ -86,7 +86,7 @@ gboolean mm_bearer_list_disconnect_all_bearers_finish (MMBearerList *self, GAsyncResult *res, GError **error); -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME void mm_bearer_list_sync_all_bearers (MMBearerList *self, GAsyncReadyCallback callback, diff --git a/src/mm-bearer-mbim.c b/src/mm-bearer-mbim.c index 3a56e07e..542881e3 100644 --- a/src/mm-bearer-mbim.c +++ b/src/mm-bearer-mbim.c @@ -1709,7 +1709,7 @@ report_connection_status (MMBaseBearer *self, /*****************************************************************************/ -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME static MMBearerConnectionStatus reload_connection_status_finish (MMBaseBearer *self, @@ -1845,7 +1845,7 @@ reload_connection_status (MMBaseBearer *self, task); } -#endif /* WITH_SYSTEMD_SUSPEND_RESUME */ +#endif /* WITH_SUSPEND_RESUME */ /*****************************************************************************/ @@ -1906,7 +1906,7 @@ mm_bearer_mbim_class_init (MMBearerMbimClass *klass) base_bearer_class->reload_stats_finish = reload_stats_finish; base_bearer_class->load_connection_status = NULL; base_bearer_class->load_connection_status_finish = NULL; -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME base_bearer_class->reload_connection_status = reload_connection_status; base_bearer_class->reload_connection_status_finish = reload_connection_status_finish; #endif diff --git a/src/mm-bearer-qmi.c b/src/mm-bearer-qmi.c index c6835e40..b0a86bc4 100644 --- a/src/mm-bearer-qmi.c +++ b/src/mm-bearer-qmi.c @@ -2680,7 +2680,7 @@ mm_bearer_qmi_class_init (MMBearerQmiClass *klass) base_bearer_class->reload_stats_finish = reload_stats_finish; base_bearer_class->load_connection_status = load_connection_status; base_bearer_class->load_connection_status_finish = load_connection_status_finish; -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME base_bearer_class->reload_connection_status = reload_connection_status; base_bearer_class->reload_connection_status_finish = reload_connection_status_finish; #endif diff --git a/src/mm-broadband-bearer.c b/src/mm-broadband-bearer.c index ffb5d6e8..0a4f7477 100644 --- a/src/mm-broadband-bearer.c +++ b/src/mm-broadband-bearer.c @@ -2043,7 +2043,7 @@ mm_broadband_bearer_class_init (MMBroadbandBearerClass *klass) base_bearer_class->report_connection_status = report_connection_status; base_bearer_class->load_connection_status = load_connection_status; base_bearer_class->load_connection_status_finish = load_connection_status_finish; -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME base_bearer_class->reload_connection_status = load_connection_status; base_bearer_class->reload_connection_status_finish = load_connection_status_finish; #endif diff --git a/src/mm-broadband-modem.c b/src/mm-broadband-modem.c index 3dde167e..5c309195 100644 --- a/src/mm-broadband-modem.c +++ b/src/mm-broadband-modem.c @@ -12064,7 +12064,7 @@ enable (MMBaseModem *self, } /*****************************************************************************/ -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME typedef enum { SYNCING_STEP_FIRST, @@ -13640,7 +13640,7 @@ mm_broadband_modem_class_init (MMBroadbandModemClass *klass) base_modem_class->disable = disable; base_modem_class->disable_finish = disable_finish; -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME base_modem_class->sync = synchronize; base_modem_class->sync_finish = synchronize_finish; #endif diff --git a/src/mm-context.c b/src/mm-context.c index 37793e5a..ecb409bb 100644 --- a/src/mm-context.c +++ b/src/mm-context.c @@ -231,7 +231,7 @@ static gchar *test_plugin_dir; #if defined WITH_UDEV static gboolean test_no_udev; #endif -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME static gboolean test_no_suspend_resume; static gboolean test_quick_suspend_resume; #endif @@ -266,7 +266,7 @@ static const GOptionEntry test_entries[] = { NULL }, #endif -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME { "test-no-suspend-resume", 0, 0, G_OPTION_ARG_NONE, &test_no_suspend_resume, "Disable suspend/resume support at runtime even if available", @@ -340,7 +340,7 @@ mm_context_get_test_no_udev (void) } #endif -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME gboolean mm_context_get_test_no_suspend_resume (void) { diff --git a/src/mm-context.h b/src/mm-context.h index 8a5c0458..f33f27ac 100644 --- a/src/mm-context.h +++ b/src/mm-context.h @@ -50,7 +50,7 @@ const gchar *mm_context_get_test_plugin_dir (void); #if defined WITH_UDEV gboolean mm_context_get_test_no_udev (void); #endif -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME gboolean mm_context_get_test_no_suspend_resume (void); gboolean mm_context_get_test_quick_suspend_resume (void); #endif diff --git a/src/mm-iface-modem-3gpp.c b/src/mm-iface-modem-3gpp.c index 51536612..000d1abb 100644 --- a/src/mm-iface-modem-3gpp.c +++ b/src/mm-iface-modem-3gpp.c @@ -2794,7 +2794,7 @@ mm_iface_modem_3gpp_enable (MMIfaceModem3gpp *self, /*****************************************************************************/ -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME typedef struct _SyncingContext SyncingContext; static void interface_syncing_step (GTask *task); diff --git a/src/mm-iface-modem-3gpp.h b/src/mm-iface-modem-3gpp.h index 39425f0f..042af657 100644 --- a/src/mm-iface-modem-3gpp.h +++ b/src/mm-iface-modem-3gpp.h @@ -302,7 +302,7 @@ gboolean mm_iface_modem_3gpp_disable_finish (MMIfaceModem3gpp *self, GAsyncResult *res, GError **error); -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME /* Sync 3GPP interface (async) */ void mm_iface_modem_3gpp_sync (MMIfaceModem3gpp *self, diff --git a/src/mm-iface-modem-time.c b/src/mm-iface-modem-time.c index 0d4f3764..af631bcc 100644 --- a/src/mm-iface-modem-time.c +++ b/src/mm-iface-modem-time.c @@ -728,7 +728,7 @@ mm_iface_modem_time_enable (MMIfaceModemTime *self, /*****************************************************************************/ -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME typedef struct _SyncingContext SyncingContext; static void interface_syncing_step (GTask *task); diff --git a/src/mm-iface-modem-time.h b/src/mm-iface-modem-time.h index a3ac7074..753dc837 100644 --- a/src/mm-iface-modem-time.h +++ b/src/mm-iface-modem-time.h @@ -125,7 +125,7 @@ gboolean mm_iface_modem_time_disable_finish (MMIfaceModemTime *self, /* Shutdown Time interface */ void mm_iface_modem_time_shutdown (MMIfaceModemTime *self); -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME /* Sync Time interface (async) */ void mm_iface_modem_time_sync (MMIfaceModemTime *self, diff --git a/src/mm-iface-modem.c b/src/mm-iface-modem.c index bea7f077..69c1872b 100644 --- a/src/mm-iface-modem.c +++ b/src/mm-iface-modem.c @@ -4472,7 +4472,7 @@ mm_iface_modem_enable (MMIfaceModem *self, /*****************************************************************************/ /* MODEM SYNCHRONIZATION */ -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME typedef struct _SyncingContext SyncingContext; static void interface_syncing_step (GTask *task); diff --git a/src/mm-iface-modem.h b/src/mm-iface-modem.h index 43034dda..cf4274be 100644 --- a/src/mm-iface-modem.h +++ b/src/mm-iface-modem.h @@ -481,7 +481,7 @@ void mm_iface_modem_shutdown (MMIfaceModem *self); gboolean mm_iface_modem_abort_invocation_if_state_not_reached (MMIfaceModem *self, GDBusMethodInvocation *invocation, MMModemState minimum_required); -#if defined WITH_SYSTEMD_SUSPEND_RESUME +#if defined WITH_SUSPEND_RESUME /* Sync Modem interface (async) */ void mm_iface_modem_sync (MMIfaceModem *self, diff --git a/src/mm-sleep-monitor-powerd.c b/src/mm-sleep-monitor-powerd.c new file mode 100644 index 00000000..4d6d7bba --- /dev/null +++ b/src/mm-sleep-monitor-powerd.c @@ -0,0 +1,171 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * (C) Copyright 2022 Google, Inc. + * Author: Rukun Mao <rmao@google.com> + * Original code from ./mm-sleep-monitor-systemd.c + */ + +#include "config.h" + +#include <errno.h> +#include <string.h> +#include <sys/stat.h> +#include <glib/gi18n.h> +#include <gio/gio.h> + +#include "mm-log-object.h" +#include "mm-utils.h" +#include "mm-sleep-monitor.h" + +#define PD_NAME "org.chromium.PowerManager" +#define PD_PATH "/org/chromium/PowerManager" +#define PD_INTERFACE "org.chromium.PowerManager" + +struct _MMSleepMonitor { + GObject parent_instance; + + GDBusProxy *pd_proxy; +}; + +struct _MMSleepMonitorClass { + GObjectClass parent_class; + + void (*sleeping) (MMSleepMonitor *monitor); + void (*resuming) (MMSleepMonitor *monitor); +}; + +enum { + SLEEPING, + RESUMING, + LAST_SIGNAL, +}; + +static guint signals[LAST_SIGNAL] = {0}; + +static void log_object_iface_init (MMLogObjectInterface *iface); + +G_DEFINE_TYPE_EXTENDED (MMSleepMonitor, mm_sleep_monitor, G_TYPE_OBJECT, 0, + G_IMPLEMENT_INTERFACE (MM_TYPE_LOG_OBJECT, log_object_iface_init)) + +/*****************************************************************************/ + +static gchar * +log_object_build_id (MMLogObject *_self) +{ + return g_strdup ("sleep-monitor-powerd"); +} + +/********************************************************************/ + +static void +signal_cb (GDBusProxy *proxy, + const gchar *sendername, + const gchar *signalname, + GVariant *args, + gpointer data) +{ + MMSleepMonitor *self = data; + gboolean is_about_to_suspend; + + if (proxy == self->pd_proxy) { + if (strcmp (signalname, "SuspendImminent") == 0) { + mm_obj_info (self, "system suspend signal from powerd"); + g_signal_emit (self, signals[SLEEPING], 0); + } else if (strcmp (signalname, "SuspendDone") == 0) { + mm_obj_info (self, "system resume signal from powerd"); + g_signal_emit (self, signals[RESUMING], 0); + } + } +} + +static void +on_pd_proxy_acquired (GObject *object, + GAsyncResult *res, + MMSleepMonitor *self) +{ + GError *error = NULL; + char *owner; + + self->pd_proxy = g_dbus_proxy_new_for_bus_finish (res, &error); + if (!self->pd_proxy) { + mm_obj_warn (self, "failed to acquire powerd proxy: %s", error->message); + g_clear_error (&error); + return; + } + + g_signal_connect (self->pd_proxy, "g-signal", G_CALLBACK (signal_cb), self); +} + +static void +mm_sleep_monitor_init (MMSleepMonitor *self) +{ + g_dbus_proxy_new_for_bus (G_BUS_TYPE_SYSTEM, + G_DBUS_PROXY_FLAGS_DO_NOT_AUTO_START | + G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES, + NULL, + PD_NAME, PD_PATH, PD_INTERFACE, + NULL, + (GAsyncReadyCallback) on_pd_proxy_acquired, self); +} + +static void +finalize (GObject *object) +{ + MMSleepMonitor *self = MM_SLEEP_MONITOR (object); + + if (self->pd_proxy) + g_object_unref (self->pd_proxy); + + if (G_OBJECT_CLASS (mm_sleep_monitor_parent_class)->finalize != NULL) + G_OBJECT_CLASS (mm_sleep_monitor_parent_class)->finalize (object); +} + +static void +log_object_iface_init (MMLogObjectInterface *iface) +{ + iface->build_id = log_object_build_id; +} + +static void +mm_sleep_monitor_class_init (MMSleepMonitorClass *klass) +{ + GObjectClass *gobject_class; + + gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->finalize = finalize; + + signals[SLEEPING] = g_signal_new (MM_SLEEP_MONITOR_SLEEPING, + MM_TYPE_SLEEP_MONITOR, + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (MMSleepMonitorClass, sleeping), + NULL, /* accumulator */ + NULL, /* accumulator data */ + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); + signals[RESUMING] = g_signal_new (MM_SLEEP_MONITOR_RESUMING, + MM_TYPE_SLEEP_MONITOR, + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (MMSleepMonitorClass, resuming), + NULL, /* accumulator */ + NULL, /* accumulator data */ + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, 0); +} + +MM_DEFINE_SINGLETON_GETTER (MMSleepMonitor, mm_sleep_monitor_get, MM_TYPE_SLEEP_MONITOR); + +/* ---------------------------------------------------------------------------------------------------- */ diff --git a/src/mm-sleep-monitor.c b/src/mm-sleep-monitor-systemd.c index d3d181c1..a65aac42 100644 --- a/src/mm-sleep-monitor.c +++ b/src/mm-sleep-monitor-systemd.c @@ -34,7 +34,6 @@ #define SD_PATH "/org/freedesktop/login1" #define SD_INTERFACE "org.freedesktop.login1.Manager" - struct _MMSleepMonitor { GObject parent_instance; @@ -55,6 +54,7 @@ enum { RESUMING, LAST_SIGNAL, }; + static guint signals[LAST_SIGNAL] = {0}; static void log_object_iface_init (MMLogObjectInterface *iface); @@ -67,7 +67,7 @@ G_DEFINE_TYPE_EXTENDED (MMSleepMonitor, mm_sleep_monitor, G_TYPE_OBJECT, 0, static gchar * log_object_build_id (MMLogObject *_self) { - return g_strdup ("sleep-monitor"); + return g_strdup ("sleep-monitor-systemd"); } /********************************************************************/ |