aboutsummaryrefslogtreecommitdiff
path: root/src/mm-base-modem.h
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2021-02-12 12:29:49 +0100
committerAleksander Morgado <aleksander@aleksander.es>2021-03-10 12:58:12 +0100
commit897e48709d1f5238f5165a5e5ed42937b0784c80 (patch)
tree1431a6724c6314272975c893ebc273e2f4dea845 /src/mm-base-modem.h
parent21174f289f1370c1badb10106045490604ccbdf4 (diff)
base-modem: allow grabbing link ports after modem is created
We will grab the ports and make them available through find_ports() or peek_port() or get_port(). The link ports are not 'organized' so they won't be available in e.g. get_data_ports(), which is fine, because we don't want to mix them with the real data ports exposed by the device. Link port additions and removals are also notified via signals in the modem object, so that explicit wait for specific ports can be done.
Diffstat (limited to 'src/mm-base-modem.h')
-rw-r--r--src/mm-base-modem.h26
1 files changed, 21 insertions, 5 deletions
diff --git a/src/mm-base-modem.h b/src/mm-base-modem.h
index 2fd534e1..19fa8eb9 100644
--- a/src/mm-base-modem.h
+++ b/src/mm-base-modem.h
@@ -67,6 +67,9 @@ typedef struct _MMBaseModemPrivate MMBaseModemPrivate;
#define MM_BASE_MODEM_DATA_NET_SUPPORTED "base-modem-data-net-supported"
#define MM_BASE_MODEM_DATA_TTY_SUPPORTED "base-modem-data-tty-supported"
+#define MM_BASE_MODEM_SIGNAL_LINK_PORT_GRABBED "base-modem-link-port-grabbed"
+#define MM_BASE_MODEM_SIGNAL_LINK_PORT_RELEASED "base-modem-link-port-released"
+
struct _MMBaseModem {
MmGdbusObjectSkeleton parent;
MMBaseModemPrivate *priv;
@@ -104,6 +107,12 @@ struct _MMBaseModemClass {
gboolean (*disable_finish) (MMBaseModem *self,
GAsyncResult *res,
GError **error);
+
+ /* signals */
+ void (* link_port_grabbed) (MMBaseModem *self,
+ MMPort *link_port);
+ void (* link_port_released) (MMBaseModem *self,
+ MMPort *link_port);
};
GType mm_base_modem_get_type (void);
@@ -111,11 +120,18 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC (MMBaseModem, g_object_unref)
guint mm_base_modem_get_dbus_id (MMBaseModem *self);
-gboolean mm_base_modem_grab_port (MMBaseModem *self,
- MMKernelDevice *kernel_device,
- MMPortType ptype,
- MMPortSerialAtFlag at_pflags,
- GError **error);
+gboolean mm_base_modem_grab_port (MMBaseModem *self,
+ MMKernelDevice *kernel_device,
+ MMPortType ptype,
+ MMPortSerialAtFlag at_pflags,
+ GError **error);
+gboolean mm_base_modem_grab_link_port (MMBaseModem *self,
+ MMKernelDevice *kernel_device,
+ GError **error);
+gboolean mm_base_modem_release_link_port (MMBaseModem *self,
+ const gchar *subsystem,
+ const gchar *name,
+ GError **error);
gboolean mm_base_modem_has_at_port (MMBaseModem *self);