mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2025-12-30 07:20:11 +01:00
Handle HAL dropouts better; allow NM to start up even if HAL isn't up yet. * marshallers/nm-marshal.list - Add marshaller * src/NetworkManager.c - (main): let the NMManager handle the NMHalManager * src/nm-hal-manager.c src/nm-hal-manager.h - convert to a GObject, and emit singals when stuff changes. Let the NMManager handle the signals, instead of the NMHalManager calling into the NMManager. * src/nm-manager.c src/nm-manager.h - (remove_one_device): consolidate device removals here - (dispose): use remove_one_device() - (nm_manager_get_device_by_udi): make static - (deferred_hal_manager_query_devices): idle handler to query the HAL manager for devices at startup or wakeup time - (nm_manager_new): create and monitor the HAL manager - (hal_manager_udi_added_cb): new function; do what nm_manager_add_device() used to do when signalled by the hal manager - (hal_manager_udi_removed_cb): new function; do what nm_manager_remove_device() used to do when signalled by the hal manager - (hal_manager_rfkill_changed_cb): handle rfkill changes from the hal manager - (hal_manager_hal_reappeared_cb): when HAL comes back, remove devices in our device list that aren't known to HAL - (impl_manager_sleep): on wakeup, re-add devices from an idle handler; see comments on nm-hal-manager.c::nm_manager_state_changed() a few commits ago - (nm_manager_get_device_by_path, nm_manager_is_udi_managed, nm_manager_activation_pending, nm_manager_wireless_enabled, nm_manager_wireless_hardware_enabled, nm_manager_set_wireless_hardware_enabled): remove, unused git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@3619 4912f4e0-d625-0410-9fb7-b9a5a253dbdc
47 lines
1.7 KiB
C
47 lines
1.7 KiB
C
#ifndef NM_HAL_MANAGER_H
|
|
#define NM_HAL_MANAGER_H
|
|
|
|
#include <glib/gtypes.h>
|
|
#include <glib-object.h>
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
#define NM_TYPE_HAL_MANAGER (nm_hal_manager_get_type ())
|
|
#define NM_HAL_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_HAL_MANAGER, NMHalManager))
|
|
#define NM_HAL_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_HAL_MANAGER, NMHalManagerClass))
|
|
#define NM_IS_HAL_MANAGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_HAL_MANAGER))
|
|
#define NM_IS_HAL_MANAGER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), NM_TYPE_HAL_MANAGER))
|
|
#define NM_HAL_MANAGER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_HAL_MANAGER, NMHalManagerClass))
|
|
|
|
typedef struct {
|
|
GObject parent;
|
|
} NMHalManager;
|
|
|
|
typedef GObject *(*NMDeviceCreatorFn) (NMHalManager *manager,
|
|
const char *udi,
|
|
gboolean managed);
|
|
|
|
typedef struct {
|
|
GObjectClass parent;
|
|
|
|
/* Virtual functions */
|
|
void (*udi_added) (NMHalManager *manager,
|
|
const char *udi,
|
|
const char *type_name,
|
|
NMDeviceCreatorFn creator_fn);
|
|
|
|
void (*udi_removed) (NMHalManager *manager, const char *udi);
|
|
|
|
void (*rfkill_changed) (NMHalManager *manager, gboolean hw_enabled);
|
|
|
|
void (*hal_reappeared) (NMHalManager *manager);
|
|
} NMHalManagerClass;
|
|
|
|
GType nm_hal_manager_get_type (void);
|
|
|
|
NMHalManager *nm_hal_manager_new (void);
|
|
gboolean nm_hal_manager_get_rfkilled (NMHalManager *manager);
|
|
void nm_hal_manager_query_devices (NMHalManager *manager);
|
|
gboolean nm_hal_manager_udi_exists (NMHalManager *manager, const char *udi);
|
|
|
|
#endif /* NM_HAL_MANAGER_H */
|