summaryrefslogtreecommitdiff
path: root/src/libmbim-glib/mbim-uuid.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libmbim-glib/mbim-uuid.h')
-rw-r--r--src/libmbim-glib/mbim-uuid.h195
1 files changed, 195 insertions, 0 deletions
diff --git a/src/libmbim-glib/mbim-uuid.h b/src/libmbim-glib/mbim-uuid.h
new file mode 100644
index 0000000..0676861
--- /dev/null
+++ b/src/libmbim-glib/mbim-uuid.h
@@ -0,0 +1,195 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+
+/*
+ * libmbim-glib -- GLib/GIO based library to control MBIM devices
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA.
+ *
+ * Copyright (C) 2013 Aleksander Morgado <aleksander@gnu.org>
+ */
+
+#ifndef _LIBMBIM_GLIB_MBIM_UUID_H_
+#define _LIBMBIM_GLIB_MBIM_UUID_H_
+
+#if !defined (__LIBMBIM_GLIB_H_INSIDE__) && !defined (LIBMBIM_GLIB_COMPILATION)
+#error "Only <libmbim-glib.h> can be included directly."
+#endif
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+/*****************************************************************************/
+
+/**
+ * MbimUuid:
+ *
+ * A UUID as defined in MBIM.
+ */
+typedef struct _MbimUuid MbimUuid;
+#define MBIM_PACKED __attribute__((__packed__))
+struct MBIM_PACKED _MbimUuid {
+ guint8 a[4];
+ guint8 b[2];
+ guint8 c[2];
+ guint8 d[2];
+ guint8 e[6];
+};
+#undef MBIM_PACKED
+
+gboolean mbim_uuid_cmp (const MbimUuid *a,
+ const MbimUuid *b);
+gchar *mbim_uuid_get_printable (const MbimUuid *uuid);
+
+/*****************************************************************************/
+
+/**
+ * MbimService:
+ * @MBIM_SERVICE_INVALID: Invalid service.
+ * @MBIM_SERVICE_BASIC_CONNECT: Basic connectivity service.
+ * @MBIM_SERVICE_SMS: SMS messaging service.
+ * @MBIM_SERVICE_USSD: USSD service.
+ * @MBIM_SERVICE_PHONEBOOK: Phonebook service.
+ * @MBIM_SERVICE_STK: SIM toolkit service.
+ * @MBIM_SERVICE_AUTH: Authentication service.
+ * @MBIM_SERVICE_DSS: Device Service Stream service.
+ *
+ * Enumeration of the generic MBIM services.
+ */
+typedef enum {
+ MBIM_SERVICE_INVALID = 0,
+ MBIM_SERVICE_BASIC_CONNECT = 1,
+ MBIM_SERVICE_SMS = 2,
+ MBIM_SERVICE_USSD = 3,
+ MBIM_SERVICE_PHONEBOOK = 4,
+ MBIM_SERVICE_STK = 5,
+ MBIM_SERVICE_AUTH = 6,
+ MBIM_SERVICE_DSS = 7,
+} MbimService;
+
+/**
+ * MBIM_UUID_INVALID:
+ *
+ * Get the UUID of the %MBIM_SERVICE_INVALID service.
+ *
+ * Returns: (transfer none): a #MbimUuid.
+ */
+#define MBIM_UUID_INVALID mbim_uuid_from_service (MBIM_SERVICE_INVALID)
+
+/**
+ * MBIM_UUID_BASIC_CONNECT:
+ *
+ * Get the UUID of the %MBIM_SERVICE_BASIC_CONNECT service.
+ *
+ * Returns: (transfer none): a #MbimUuid.
+ */
+#define MBIM_UUID_BASIC_CONNECT mbim_uuid_from_service (MBIM_SERVICE_BASIC_CONNECT)
+
+/**
+ * MBIM_UUID_SMS:
+ *
+ * Get the UUID of the %MBIM_SERVICE_SMS service.
+ *
+ * Returns: (transfer none): a #MbimUuid.
+ */
+#define MBIM_UUID_SMS mbim_uuid_from_service (MBIM_SERVICE_SMS)
+
+/**
+ * MBIM_UUID_USSD:
+ *
+ * Get the UUID of the %MBIM_SERVICE_USSD service.
+ *
+ * Returns: (transfer none): a #MbimUuid.
+ */
+#define MBIM_UUID_USSD mbim_uuid_from_service (MBIM_SERVICE_USSD)
+
+/**
+ * MBIM_UUID_PHONEBOOK:
+ *
+ * Get the UUID of the %MBIM_SERVICE_PHONEBOOK service.
+ *
+ * Returns: (transfer none): a #MbimUuid.
+ */
+#define MBIM_UUID_PHONEBOOK mbim_uuid_from_service (MBIM_SERVICE_PHONEBOOK)
+
+/**
+ * MBIM_UUID_STK:
+ *
+ * Get the UUID of the %MBIM_SERVICE_STK service.
+ *
+ * Returns: (transfer none): a #MbimUuid.
+ */
+#define MBIM_UUID_STK mbim_uuid_from_service (MBIM_SERVICE_STK)
+
+/**
+ * MBIM_UUID_AUTH:
+ *
+ * Get the UUID of the %MBIM_SERVICE_AUTH service.
+ *
+ * Returns: (transfer none): a #MbimUuid.
+ */
+#define MBIM_UUID_AUTH mbim_uuid_from_service (MBIM_SERVICE_AUTH)
+
+/**
+ * MBIM_UUID_DSS:
+ *
+ * Get the UUID of the %MBIM_SERVICE_DSS service.
+ *
+ * Returns: (transfer none): a #MbimUuid.
+ */
+#define MBIM_UUID_DSS mbim_uuid_from_service (MBIM_SERVICE_DSS)
+
+/* To/From service */
+const MbimUuid *mbim_uuid_from_service (MbimService service);
+MbimService mbim_uuid_to_service (const MbimUuid *uuid);
+
+/*****************************************************************************/
+
+/**
+ * MbimContextType:
+ * @MBIM_CONTEXT_TYPE_INVALID: Invalid context type.
+ * @MBIM_CONTEXT_TYPE_NONE: Context not yet provisioned.
+ * @MBIM_CONTEXT_TYPE_INTERNET: Connection to the Internet.
+ * @MBIM_CONTEXT_TYPE_VPN: Connection to a VPN.
+ * @MBIM_CONTEXT_TYPE_VOICE: Connection to a VoIP service.
+ * @MBIM_CONTEXT_TYPE_VIDEO_SHARE: Connection to a video sharing service.
+ * @MBIM_CONTEXT_TYPE_PURCHASE: Connection to an over-the-air activation site.
+ * @MBIM_CONTEXT_TYPE_IMS: Connection to IMS.
+ * @MBIM_CONTEXT_TYPE_MMS: Connection to MMS.
+ * @MBIM_CONTEXT_TYPE_LOCAL: A local.
+ *
+ * Enumeration of the generic MBIM context types.
+ */
+typedef enum {
+ MBIM_CONTEXT_TYPE_INVALID = 0,
+ MBIM_CONTEXT_TYPE_NONE = 1,
+ MBIM_CONTEXT_TYPE_INTERNET = 2,
+ MBIM_CONTEXT_TYPE_VPN = 3,
+ MBIM_CONTEXT_TYPE_VOICE = 4,
+ MBIM_CONTEXT_TYPE_VIDEO_SHARE = 5,
+ MBIM_CONTEXT_TYPE_PURCHASE = 6,
+ MBIM_CONTEXT_TYPE_IMS = 7,
+ MBIM_CONTEXT_TYPE_MMS = 8,
+ MBIM_CONTEXT_TYPE_LOCAL = 9,
+} MbimContextType;
+
+/* To/From context type */
+const MbimUuid *mbim_uuid_from_context_type (MbimContextType context_type);
+MbimContextType mbim_uuid_to_context_type (const MbimUuid *uuid);
+
+G_END_DECLS
+
+#endif /* _LIBMBIM_GLIB_MBIM_UUID_H_ */