aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@lanedo.com>2011-11-22 11:03:03 +0100
committerAleksander Morgado <aleksander@lanedo.com>2012-03-15 14:14:18 +0100
commit23367c718643e621a08922aaa5be0542fe9c47b7 (patch)
tree81481c3bed8fe2da6ef6674d4b580ed3c8c00a9c
parent0e9ed6e5fed70c873c597b91a9b844df44f9ffc0 (diff)
libmm-common: include Errors type information
The code to handle the Errors type information is automatically built with `glib-mkenums' and the new templates kept under `build-aux'.
-rw-r--r--build-aux/Makefile.am4
-rw-r--r--build-aux/mm-errors-types.c.template43
-rw-r--r--build-aux/mm-errors-types.h.template27
-rw-r--r--libmm-common/Makefile.am16
-rw-r--r--libmm-common/mm-errors-quarks.c216
5 files changed, 304 insertions, 2 deletions
diff --git a/build-aux/Makefile.am b/build-aux/Makefile.am
index 652e9325..9fc2b976 100644
--- a/build-aux/Makefile.am
+++ b/build-aux/Makefile.am
@@ -3,4 +3,6 @@ EXTRA_DIST = \
header-generator.xsl \
header-generator-new.xsl \
mm-enums-types.h.template \
- mm-enums-types.c.template
+ mm-enums-types.c.template \
+ mm-enums-errors.h.template \
+ mm-enums-errors.c.template
diff --git a/build-aux/mm-errors-types.c.template b/build-aux/mm-errors-types.c.template
new file mode 100644
index 00000000..4505b7d9
--- /dev/null
+++ b/build-aux/mm-errors-types.c.template
@@ -0,0 +1,43 @@
+/*** BEGIN file-header ***/
+#include "ModemManager-errors.h"
+#include "mm-errors-types.h"
+
+/*** END file-header ***/
+
+/*** BEGIN file-production ***/
+/* enumerations from "@filename@" */
+/*** END file-production ***/
+
+/*** BEGIN value-header ***/
+
+/* @enum_name@_quark() implemented in mm-errors-quarks.c */
+
+GType
+@enum_name@_get_type (void)
+{
+ static volatile gsize g_define_type_id__volatile = 0;
+
+ if (g_once_init_enter (&g_define_type_id__volatile))
+ {
+ static const G@Type@Value values[] = {
+/*** END value-header ***/
+
+/*** BEGIN value-production ***/
+ { @VALUENAME@, "@VALUENAME@", "@valuenick@" },
+/*** END value-production ***/
+
+/*** BEGIN value-tail ***/
+ { 0, NULL, NULL }
+ };
+ GType g_define_type_id =
+ g_@type@_register_static (g_intern_static_string ("@EnumName@"), values);
+ g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+ }
+
+ return g_define_type_id__volatile;
+}
+
+/*** END value-tail ***/
+
+/*** BEGIN file-tail ***/
+/*** END file-tail ***/
diff --git a/build-aux/mm-errors-types.h.template b/build-aux/mm-errors-types.h.template
new file mode 100644
index 00000000..1a9baf42
--- /dev/null
+++ b/build-aux/mm-errors-types.h.template
@@ -0,0 +1,27 @@
+/*** BEGIN file-header ***/
+
+#ifndef __MM_ERRORS_TYPES_H__
+#define __MM_ERRORS_TYPES_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+/*** END file-header ***/
+
+/*** BEGIN file-production ***/
+
+/* enumerations from "@filename@" */
+/*** END file-production ***/
+
+/*** BEGIN value-header ***/
+GQuark @enum_name@_quark (void); /* implemented in mm-errors-quarks.c */
+GType @enum_name@_get_type (void) G_GNUC_CONST;
+#define @ENUMNAME@ (@enum_name@_quark ())
+#define @ENUMPREFIX@TYPE_@ENUMSHORT@ (@enum_name@_get_type ())
+/*** END value-header ***/
+
+/*** BEGIN file-tail ***/
+G_END_DECLS
+
+#endif /* __MM_ERRORS_TYPES_H__ */
+/*** END file-tail ***/ \ No newline at end of file
diff --git a/libmm-common/Makefile.am b/libmm-common/Makefile.am
index 52e4fc35..9f329f40 100644
--- a/libmm-common/Makefile.am
+++ b/libmm-common/Makefile.am
@@ -3,6 +3,7 @@ noinst_LTLIBRARIES = libmm-common.la
GENERATED_H = \
mm-enums-types.h \
+ mm-errors-types.h \
mm-gdbus-manager.h \
mm-gdbus-sim.h \
mm-gdbus-sms.h \
@@ -11,6 +12,7 @@ GENERATED_H = \
GENERATED_C = \
mm-enums-types.c \
+ mm-errors-types.c \
mm-gdbus-manager.c \
mm-gdbus-sim.c \
mm-gdbus-sms.c \
@@ -43,6 +45,17 @@ mm-enums-types.c: $(top_srcdir)/include/ModemManager-enums.h $(top_srcdir)/build
--template $(top_srcdir)/build-aux/mm-enums-types.c.template \
$(top_srcdir)/include/ModemManager-enums.h > $@
+# Error types
+mm-errors-types.h: $(top_srcdir)/include/ModemManager-errors.h $(top_srcdir)/build-aux/mm-errors-types.h.template
+ $(AM_V_GEN) glib-mkenums \
+ --template $(top_srcdir)/build-aux/mm-errors-types.h.template \
+ $(top_srcdir)/include/ModemManager-errors.h > $@
+
+mm-errors-types.c: $(top_srcdir)/include/ModemManager-errors.h $(top_srcdir)/build-aux/mm-errors-types.c.template mm-errors-types.h
+ $(AM_V_GEN) glib-mkenums \
+ --template $(top_srcdir)/build-aux/mm-errors-types.c.template \
+ $(top_srcdir)/include/ModemManager-errors.h > $@
+
# Manager interface
mm_gdbus_manager_generated = \
mm-gdbus-manager.h \
@@ -126,7 +139,8 @@ $(mm_gdbus_bearer_generated): $(top_srcdir)/new/org.freedesktop.ModemManager1.Be
libmm_common_la_SOURCES = \
$(GENERATED_H) \
- $(GENERATED_C)
+ $(GENERATED_C) \
+ mm-errors-quarks.c
libmm_common_la_CPPFLAGS = \
$(MM_CFLAGS) \
diff --git a/libmm-common/mm-errors-quarks.c b/libmm-common/mm-errors-quarks.c
new file mode 100644
index 00000000..07cbfc7b
--- /dev/null
+++ b/libmm-common/mm-errors-quarks.c
@@ -0,0 +1,216 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program 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 General Public License for more details:
+ *
+ * Copyright (C) 2011 - Google, Inc.
+ */
+
+/* NOTE: ideally, this file should be autogenerated by glib-mkenums, along with
+ * mm-errors-types.[c|h], but currently glib-mkenums is not enough for the kind
+ * of substitutions we need, specifically when generating the DBus paths of the
+ * errors. See discussions at:
+ * https://bugzilla.gnome.org/show_bug.cgi?id=662693
+ */
+
+#include <gio/gio.h>
+
+#include "ModemManager-errors.h"
+#include "mm-errors-types.h"
+
+#define ERROR_PREFIX "org.freedesktop.ModemManager1.Core.Error."
+static const GDBusErrorEntry mm_core_error_entries[] = {
+ { MM_CORE_ERROR_FAILED, ERROR_PREFIX "Failed" },
+ { MM_CORE_ERROR_CANCELLED, ERROR_PREFIX "Cancelled" },
+ { MM_CORE_ERROR_ABORTED, ERROR_PREFIX "Aborted" },
+ { MM_CORE_ERROR_UNSUPPORTED, ERROR_PREFIX "Unsupported" },
+ { MM_CORE_ERROR_NO_PLUGINS, ERROR_PREFIX "NoPlugins" },
+ { MM_CORE_ERROR_UNAUTHORIZED, ERROR_PREFIX "Unauthorized" },
+ { MM_CORE_ERROR_INVALID_ARGS, ERROR_PREFIX "InvalidArgs" },
+ { MM_CORE_ERROR_IN_PROGRESS, ERROR_PREFIX "InProgress" },
+ { MM_CORE_ERROR_WRONG_STATE, ERROR_PREFIX "WrongState" },
+};
+#undef ERROR_PREFIX
+
+GQuark
+mm_core_error_quark (void)
+{
+ static volatile gsize quark_volatile = 0;
+
+ if (!quark_volatile)
+ g_dbus_error_register_error_domain ("mm-core-error-quark",
+ &quark_volatile,
+ mm_core_error_entries,
+ G_N_ELEMENTS (mm_core_error_entries));
+
+ return (GQuark) quark_volatile;
+}
+
+#define ERROR_PREFIX "org.freedesktop.ModemManager1.MobileEquipment.Error."
+static const GDBusErrorEntry mm_mobile_equipment_error_entries[] = {
+ /* General errors */
+ { MM_MOBILE_EQUIPMENT_ERROR_PHONE_FAILURE, ERROR_PREFIX "PhoneFailure" },
+ { MM_MOBILE_EQUIPMENT_ERROR_NO_CONNECTION, ERROR_PREFIX "NoConnection" },
+ { MM_MOBILE_EQUIPMENT_ERROR_LINK_RESERVED, ERROR_PREFIX "LinkReserved" },
+ { MM_MOBILE_EQUIPMENT_ERROR_NOT_ALLOWED, ERROR_PREFIX "NotAllowed" },
+ { MM_MOBILE_EQUIPMENT_ERROR_NOT_SUPPORTED, ERROR_PREFIX "NotSupported" },
+ { MM_MOBILE_EQUIPMENT_ERROR_PH_SIM_PIN, ERROR_PREFIX "PhSimPin" },
+ { MM_MOBILE_EQUIPMENT_ERROR_PH_FSIM_PIN, ERROR_PREFIX "PhFsimPin" },
+ { MM_MOBILE_EQUIPMENT_ERROR_PH_FSIM_PUK, ERROR_PREFIX "PhFsimPuk" },
+ { MM_MOBILE_EQUIPMENT_ERROR_SIM_NOT_INSERTED, ERROR_PREFIX "SimNotInserted" },
+ { MM_MOBILE_EQUIPMENT_ERROR_SIM_PIN, ERROR_PREFIX "SimPin" },
+ { MM_MOBILE_EQUIPMENT_ERROR_SIM_PUK, ERROR_PREFIX "SimPuk" },
+ { MM_MOBILE_EQUIPMENT_ERROR_SIM_FAILURE, ERROR_PREFIX "SimFailure" },
+ { MM_MOBILE_EQUIPMENT_ERROR_SIM_BUSY, ERROR_PREFIX "SimBusy" },
+ { MM_MOBILE_EQUIPMENT_ERROR_SIM_WRONG, ERROR_PREFIX "SimWrong" },
+ { MM_MOBILE_EQUIPMENT_ERROR_INCORRECT_PASSWORD, ERROR_PREFIX "IncorrectPassword" },
+ { MM_MOBILE_EQUIPMENT_ERROR_SIM_PIN2, ERROR_PREFIX "SimPin2" },
+ { MM_MOBILE_EQUIPMENT_ERROR_SIM_PUK2, ERROR_PREFIX "SimPuk2" },
+ { MM_MOBILE_EQUIPMENT_ERROR_MEMORY_FULL, ERROR_PREFIX "MemoryFull" },
+ { MM_MOBILE_EQUIPMENT_ERROR_INVALID_INDEX, ERROR_PREFIX "InvalidIndex" },
+ { MM_MOBILE_EQUIPMENT_ERROR_NOT_FOUND, ERROR_PREFIX "NotFound" },
+ { MM_MOBILE_EQUIPMENT_ERROR_MEMORY_FAILURE, ERROR_PREFIX "MemoryFailure" },
+ { MM_MOBILE_EQUIPMENT_ERROR_TEXT_TOO_LONG, ERROR_PREFIX "TextTooLong" },
+ { MM_MOBILE_EQUIPMENT_ERROR_INVALID_CHARS, ERROR_PREFIX "InvalidChars" },
+ { MM_MOBILE_EQUIPMENT_ERROR_DIAL_STRING_TOO_LONG, ERROR_PREFIX "DialStringTooLong" },
+ { MM_MOBILE_EQUIPMENT_ERROR_DIAL_STRING_INVALID, ERROR_PREFIX "DialStringInvalid" },
+ { MM_MOBILE_EQUIPMENT_ERROR_NO_NETWORK, ERROR_PREFIX "NoNetwork" },
+ { MM_MOBILE_EQUIPMENT_ERROR_NETWORK_TIMEOUT, ERROR_PREFIX "NetworkTimeout" },
+ { MM_MOBILE_EQUIPMENT_ERROR_NETWORK_NOT_ALLOWED, ERROR_PREFIX "NetworkNotAllowed" },
+ { MM_MOBILE_EQUIPMENT_ERROR_NETWORK_PIN, ERROR_PREFIX "NetworkPin" },
+ { MM_MOBILE_EQUIPMENT_ERROR_NETWORK_PUK, ERROR_PREFIX "NetworkPuk" },
+ { MM_MOBILE_EQUIPMENT_ERROR_NETWORK_SUBSET_PIN, ERROR_PREFIX "NetworkSubsetPin" },
+ { MM_MOBILE_EQUIPMENT_ERROR_NETWORK_SUBSET_PUK, ERROR_PREFIX "NetworkSubsetPuk" },
+ { MM_MOBILE_EQUIPMENT_ERROR_SERVICE_PIN, ERROR_PREFIX "ServicePin" },
+ { MM_MOBILE_EQUIPMENT_ERROR_SERVICE_PUK, ERROR_PREFIX "ServicePuk" },
+ { MM_MOBILE_EQUIPMENT_ERROR_CORP_PIN, ERROR_PREFIX "CorpPin" },
+ { MM_MOBILE_EQUIPMENT_ERROR_CORP_PUK, ERROR_PREFIX "CorpPuk" },
+ { MM_MOBILE_EQUIPMENT_ERROR_UNKNOWN, ERROR_PREFIX "Unknown" },
+ /* GPRS related errors */
+ { MM_MOBILE_EQUIPMENT_ERROR_GPRS_ILLEGAL_MS, ERROR_PREFIX "GPRS.IllegalMs" },
+ { MM_MOBILE_EQUIPMENT_ERROR_GPRS_ILLEGAL_ME, ERROR_PREFIX "GPRS.IllegalMe" },
+ { MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_NOT_ALLOWED, ERROR_PREFIX "GPRS.ServiceNotAllowed" },
+ { MM_MOBILE_EQUIPMENT_ERROR_GPRS_PLMN_NOT_ALLOWED, ERROR_PREFIX "GPRS.PlmnNotAllowed" },
+ { MM_MOBILE_EQUIPMENT_ERROR_GPRS_LOCATION_NOT_ALLOWED, ERROR_PREFIX "GPRS.LocationNotAllowed" },
+ { MM_MOBILE_EQUIPMENT_ERROR_GPRS_ROAMING_NOT_ALLOWED, ERROR_PREFIX "GPRS.RomaingNotAllowed" },
+ { MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_OPTION_NOT_SUPPORTED, ERROR_PREFIX "GPRS.ServiceOptionNotSupported" },
+ { MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_OPTION_NOT_SUBSCRIBED, ERROR_PREFIX "GPRS.ServiceOptionNotSubscribed" },
+ { MM_MOBILE_EQUIPMENT_ERROR_GPRS_SERVICE_OPTION_OUT_OF_ORDER, ERROR_PREFIX "GPRS.ServiceOptionOutOfOrder" },
+ { MM_MOBILE_EQUIPMENT_ERROR_GPRS_UNKNOWN, ERROR_PREFIX "GPRS.Unknown" },
+ { MM_MOBILE_EQUIPMENT_ERROR_GPRS_PDP_AUTH_FAILURE, ERROR_PREFIX "GPRS.PdpAuthFailure" },
+ { MM_MOBILE_EQUIPMENT_ERROR_GPRS_INVALID_MOBILE_CLASS, ERROR_PREFIX "GPRS.InvalidMobileClass" }
+};
+#undef ERROR_PREFIX
+
+GQuark
+mm_mobile_equipment_error_quark (void)
+{
+ static volatile gsize quark_volatile = 0;
+
+ if (!quark_volatile)
+ g_dbus_error_register_error_domain ("mm-mobile-equipment-error-quark",
+ &quark_volatile,
+ mm_mobile_equipment_error_entries,
+ G_N_ELEMENTS (mm_mobile_equipment_error_entries));
+
+ return (GQuark) quark_volatile;
+}
+
+#define ERROR_PREFIX "org.freedesktop.ModemManager1.Connection.Error."
+static const GDBusErrorEntry mm_connection_error_entries[] = {
+ { MM_CONNECTION_ERROR_UNKNOWN, ERROR_PREFIX "Unknown" },
+ { MM_CONNECTION_ERROR_NO_CARRIER, ERROR_PREFIX "NoCarrier" },
+ { MM_CONNECTION_ERROR_NO_DIALTONE, ERROR_PREFIX "NoDialtone" },
+ { MM_CONNECTION_ERROR_BUSY, ERROR_PREFIX "Busy" },
+ { MM_CONNECTION_ERROR_NO_ANSWER, ERROR_PREFIX "NoAnswer" },
+};
+#undef ERROR_PREFIX
+
+GQuark
+mm_connection_error_quark (void)
+{
+ static volatile gsize quark_volatile = 0;
+
+ if (!quark_volatile)
+ g_dbus_error_register_error_domain ("mm-connection-error-quark",
+ &quark_volatile,
+ mm_connection_error_entries,
+ G_N_ELEMENTS (mm_connection_error_entries));
+
+ return (GQuark) quark_volatile;
+}
+
+#define ERROR_PREFIX "org.freedesktop.ModemManager1.Serial.Error."
+static const GDBusErrorEntry mm_serial_error_entries[] = {
+ { MM_SERIAL_ERROR_UNKNOWN, ERROR_PREFIX "Unknown" },
+ { MM_SERIAL_ERROR_OPEN_FAILED, ERROR_PREFIX "OpenFailed" },
+ { MM_SERIAL_ERROR_SEND_FAILED, ERROR_PREFIX "SendFailed" },
+ { MM_SERIAL_ERROR_RESPONSE_TIMEOUT, ERROR_PREFIX "ResponseTimeout" },
+ { MM_SERIAL_ERROR_OPEN_FAILED_NO_DEVICE, ERROR_PREFIX "OpenFailedNoDevice" },
+ { MM_SERIAL_ERROR_FLASH_FAILED, ERROR_PREFIX "FlashFailed" },
+ { MM_SERIAL_ERROR_NOT_OPEN, ERROR_PREFIX "NotOpen" },
+};
+#undef ERROR_PREFIX
+
+GQuark
+mm_serial_error_quark (void)
+{
+ static volatile gsize quark_volatile = 0;
+
+ if (!quark_volatile)
+ g_dbus_error_register_error_domain ("mm-serial-error-quark",
+ &quark_volatile,
+ mm_serial_error_entries,
+ G_N_ELEMENTS (mm_serial_error_entries));
+
+ return (GQuark) quark_volatile;
+}
+
+#define ERROR_PREFIX "org.freedesktop.ModemManager1.Message.Error."
+static const GDBusErrorEntry mm_message_error_entries[] = {
+ { MM_MESSAGE_ERROR_ME_FAILURE, ERROR_PREFIX "MeFailure" },
+ { MM_MESSAGE_ERROR_SMS_SERVICE_RESERVED, ERROR_PREFIX "SmsServiceReserved" },
+ { MM_MESSAGE_ERROR_NOT_ALLOWED, ERROR_PREFIX "NotAllowed" },
+ { MM_MESSAGE_ERROR_NOT_SUPPORTED, ERROR_PREFIX "NotSupported" },
+ { MM_MESSAGE_ERROR_INVALID_PDU_PARAMETER, ERROR_PREFIX "InvalidPduParameter" },
+ { MM_MESSAGE_ERROR_INVALID_TEXT_PARAMETER, ERROR_PREFIX "InvalidTextParameter" },
+ { MM_MESSAGE_ERROR_SIM_NOT_INSERTED, ERROR_PREFIX "SimNotInserted" },
+ { MM_MESSAGE_ERROR_SIM_PIN, ERROR_PREFIX "SimPin" },
+ { MM_MESSAGE_ERROR_PH_SIM_PIN, ERROR_PREFIX "PhSimPin" },
+ { MM_MESSAGE_ERROR_SIM_FAILURE, ERROR_PREFIX "SimFailure" },
+ { MM_MESSAGE_ERROR_SIM_BUSY, ERROR_PREFIX "SimBusy" },
+ { MM_MESSAGE_ERROR_SIM_WRONG, ERROR_PREFIX "SimWrong" },
+ { MM_MESSAGE_ERROR_SIM_PUK, ERROR_PREFIX "SimPuk" },
+ { MM_MESSAGE_ERROR_SIM_PIN2, ERROR_PREFIX "SimPin2" },
+ { MM_MESSAGE_ERROR_SIM_PUK2, ERROR_PREFIX "SimPuk2" },
+ { MM_MESSAGE_ERROR_MEMORY_FAILURE, ERROR_PREFIX "MemoryFailure" },
+ { MM_MESSAGE_ERROR_INVALID_INDEX, ERROR_PREFIX "InvalidIndex" },
+ { MM_MESSAGE_ERROR_MEMORY_FULL, ERROR_PREFIX "MemoryFull" },
+ { MM_MESSAGE_ERROR_SMSC_ADDRESS_UNKNOWN, ERROR_PREFIX "SmscAddressUnknown" },
+ { MM_MESSAGE_ERROR_NO_NETWORK, ERROR_PREFIX "NoNetwork" },
+ { MM_MESSAGE_ERROR_NETWORK_TIMEOUT, ERROR_PREFIX "NetworkTimeout" },
+ { MM_MESSAGE_ERROR_NO_CNMA_ACK_EXPECTED, ERROR_PREFIX "NoCdmaAckExpected" },
+ { MM_MESSAGE_ERROR_UNKNOWN, ERROR_PREFIX "Unknown" }
+};
+#undef ERROR_PREFIX
+
+GQuark
+mm_message_error_quark (void)
+{
+ static volatile gsize quark_volatile = 0;
+
+ if (!quark_volatile)
+ g_dbus_error_register_error_domain ("mm-message-error-quark",
+ &quark_volatile,
+ mm_message_error_entries,
+ G_N_ELEMENTS (mm_message_error_entries));
+
+ return (GQuark) quark_volatile;
+}