From 60f4f9e57df90cf094fffb6896ffce8dba15d244 Mon Sep 17 00:00:00 2001 From: Carlo Lobrano Date: Mon, 8 Aug 2016 15:47:18 +0200 Subject: modem: support SIM hot swap BaseModem added reprobe property. MMDevice added logic to recreate the modem if it is set invalid and "to reprobe" MMBroadbandModem * added initialization step for SIM hot swap: 1. keep dedicated ports open to listen to modem's unsolicited 2. dedicated error management in case of initialization failure due to SIM missing * added function to be called in order to act upon SIM insertion/removal: 1. close dedicated ports 2. set the modem to be reprobed 3. disable modem * added SIM HOT SWAP boolean property MMIfaceModem * added initialization step for SIM hot swap, if supported by the plugin * dedicated error management in case of initialization failure due to SIM missing --- src/mm-iface-modem.h | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'src/mm-iface-modem.h') diff --git a/src/mm-iface-modem.h b/src/mm-iface-modem.h index 74ea9f92..517c651d 100644 --- a/src/mm-iface-modem.h +++ b/src/mm-iface-modem.h @@ -32,10 +32,11 @@ #define MM_IS_IFACE_MODEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MM_TYPE_IFACE_MODEM)) #define MM_IFACE_MODEM_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), MM_TYPE_IFACE_MODEM, MMIfaceModem)) -#define MM_IFACE_MODEM_DBUS_SKELETON "iface-modem-dbus-skeleton" -#define MM_IFACE_MODEM_STATE "iface-modem-state" -#define MM_IFACE_MODEM_SIM "iface-modem-sim" -#define MM_IFACE_MODEM_BEARER_LIST "iface-modem-bearer-list" +#define MM_IFACE_MODEM_DBUS_SKELETON "iface-modem-dbus-skeleton" +#define MM_IFACE_MODEM_STATE "iface-modem-state" +#define MM_IFACE_MODEM_SIM "iface-modem-sim" +#define MM_IFACE_MODEM_BEARER_LIST "iface-modem-bearer-list" +#define MM_IFACE_MODEM_SIM_HOT_SWAP_SUPPORTED "iface-modem-sim-hot-swap-supported" typedef struct _MMIfaceModem MMIfaceModem; @@ -327,6 +328,14 @@ struct _MMIfaceModem { MMBaseBearer * (*create_bearer_finish) (MMIfaceModem *self, GAsyncResult *res, GError **error); + /* Setup SIM hot swap */ + void (*setup_sim_hot_swap) (MMIfaceModem *self, + GAsyncReadyCallback callback, + gpointer user_data); + + gboolean (*setup_sim_hot_swap_finish) (MMIfaceModem *self, + GAsyncResult *res, + GError **error); }; GType mm_iface_modem_get_type (void); -- cgit v1.2.3-70-g09d2