summaryrefslogtreecommitdiff
path: root/src/mm-plugin.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-plugin.h')
-rw-r--r--src/mm-plugin.h62
1 files changed, 41 insertions, 21 deletions
diff --git a/src/mm-plugin.h b/src/mm-plugin.h
index 7497afbd..b27e7a2f 100644
--- a/src/mm-plugin.h
+++ b/src/mm-plugin.h
@@ -20,17 +20,25 @@
#include <glib.h>
#include <glib-object.h>
-#include <gudev/gudev.h>
#include "mm-base-modem.h"
#include "mm-port.h"
#include "mm-port-probe.h"
#include "mm-device.h"
+#include "mm-kernel-device.h"
-#define MM_PLUGIN_GENERIC_NAME "Generic"
#define MM_PLUGIN_MAJOR_VERSION 4
#define MM_PLUGIN_MINOR_VERSION 0
+#if defined (G_HAVE_GNUC_VISIBILITY)
+#define VISIBILITY __attribute__((visibility("protected")))
+#else
+#define VISIBILITY
+#endif
+
+#define MM_PLUGIN_DEFINE_MAJOR_VERSION VISIBILITY int mm_plugin_major_version = MM_PLUGIN_MAJOR_VERSION;
+#define MM_PLUGIN_DEFINE_MINOR_VERSION VISIBILITY int mm_plugin_minor_version = MM_PLUGIN_MINOR_VERSION;
+
#define MM_TYPE_PLUGIN (mm_plugin_get_type ())
#define MM_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MM_TYPE_PLUGIN, MMPlugin))
#define MM_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MM_TYPE_PLUGIN, MMPluginClass))
@@ -39,6 +47,7 @@
#define MM_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MM_TYPE_PLUGIN, MMPluginClass))
#define MM_PLUGIN_NAME "name"
+#define MM_PLUGIN_IS_GENERIC "is-generic"
#define MM_PLUGIN_ALLOWED_SUBSYSTEMS "allowed-subsystems"
#define MM_PLUGIN_ALLOWED_DRIVERS "allowed-drivers"
#define MM_PLUGIN_FORBIDDEN_DRIVERS "forbidden-drivers"
@@ -57,6 +66,9 @@
#define MM_PLUGIN_ICERA_PROBE "icera-probe"
#define MM_PLUGIN_ALLOWED_ICERA "allowed-icera"
#define MM_PLUGIN_FORBIDDEN_ICERA "forbidden-icera"
+#define MM_PLUGIN_XMM_PROBE "xmm-probe"
+#define MM_PLUGIN_ALLOWED_XMM "allowed-xmm"
+#define MM_PLUGIN_FORBIDDEN_XMM "forbidden-xmm"
#define MM_PLUGIN_CUSTOM_INIT "custom-init"
#define MM_PLUGIN_CUSTOM_AT_PROBE "custom-at-probe"
#define MM_PLUGIN_SEND_DELAY "send-delay"
@@ -64,7 +76,8 @@
#define MM_PLUGIN_SEND_LF "send-lf"
typedef enum {
- MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED = 0x0,
+ MM_PLUGIN_SUPPORTS_PORT_UNKNOWN = -1,
+ MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED,
MM_PLUGIN_SUPPORTS_PORT_DEFER,
MM_PLUGIN_SUPPORTS_PORT_DEFER_UNTIL_SUGGESTED,
MM_PLUGIN_SUPPORTS_PORT_SUPPORTED
@@ -93,8 +106,8 @@ struct _MMPluginClass {
/* Plugins need to provide a method to create a modem object given
* a list of port probes (Mandatory) */
- MMBaseModem *(*create_modem) (MMPlugin *plugin,
- const gchar *sysfs_path,
+ MMBaseModem *(*create_modem) (MMPlugin *self,
+ const gchar *uid,
const gchar **drivers,
guint16 vendor,
guint16 product,
@@ -103,32 +116,39 @@ struct _MMPluginClass {
/* Plugins need to provide a method to grab independent ports
* identified by port probes (Optional) */
- gboolean (*grab_port) (MMPlugin *plugin,
+ gboolean (*grab_port) (MMPlugin *self,
MMBaseModem *modem,
MMPortProbe *probe,
GError **error);
};
GType mm_plugin_get_type (void);
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (MMPlugin, g_object_unref)
-const gchar *mm_plugin_get_name (MMPlugin *plugin);
+const gchar *mm_plugin_get_name (MMPlugin *self);
+const gchar **mm_plugin_get_allowed_subsystems (MMPlugin *self);
+const gchar **mm_plugin_get_allowed_udev_tags (MMPlugin *self);
+const guint16 *mm_plugin_get_allowed_vendor_ids (MMPlugin *self);
+const mm_uint16_pair *mm_plugin_get_allowed_product_ids (MMPlugin *self);
+gboolean mm_plugin_is_generic (MMPlugin *self);
/* This method will run all pre-probing filters, to see if we can discard this
* plugin from the probing logic as soon as possible. */
-MMPluginSupportsHint mm_plugin_discard_port_early (MMPlugin *plugin,
- MMDevice *device,
- GUdevDevice *port);
-
-void mm_plugin_supports_port (MMPlugin *plugin,
- MMDevice *device,
- GUdevDevice *port,
- GAsyncReadyCallback callback,
- gpointer user_data);
-MMPluginSupportsResult mm_plugin_supports_port_finish (MMPlugin *plugin,
- GAsyncResult *result,
- GError **error);
-
-MMBaseModem *mm_plugin_create_modem (MMPlugin *plugin,
+MMPluginSupportsHint mm_plugin_discard_port_early (MMPlugin *self,
+ MMDevice *device,
+ MMKernelDevice *port);
+
+void mm_plugin_supports_port (MMPlugin *self,
+ MMDevice *device,
+ MMKernelDevice *port,
+ GCancellable *cancellable,
+ GAsyncReadyCallback callback,
+ gpointer user_data);
+MMPluginSupportsResult mm_plugin_supports_port_finish (MMPlugin *self,
+ GAsyncResult *result,
+ GError **error);
+
+MMBaseModem *mm_plugin_create_modem (MMPlugin *self,
MMDevice *device,
GError **error);