oma: setup generation of the OMA service support

This commit is contained in:
Aleksander Morgado 2013-08-09 09:45:16 +02:00
parent d28acd105a
commit 83436e3fa5
10 changed files with 430 additions and 9 deletions

View File

@ -76,8 +76,8 @@ def add_header_start(f, output_name, service):
else:
template += (
"#include \"qmi-enums-private.h\"\n")
# CTL, WDS, WMS, PDS, PBM and UIM don't have flags64
if service != 'CTL' and service != 'WDS' and service != 'WMS' and service != 'PDS' and service != 'PBM' and service != 'UIM':
# CTL, WDS, WMS, PDS, PBM, UIM and OMA don't have flags64
if service != 'CTL' and service != 'WDS' and service != 'WMS' and service != 'PDS' and service != 'PBM' and service != 'UIM' and service != 'OMA':
template += (
"#include \"qmi-flags64-${service}.h\"\n")
template += (

223
data/qmi-service-oma.json Normal file
View File

@ -0,0 +1,223 @@
[
// *********************************************************************************
{ "name" : "OMA",
"type" : "Service" },
// *********************************************************************************
{ "name" : "QMI Client OMA",
"type" : "Client" },
// *********************************************************************************
{ "name" : "QMI Message OMA",
"type" : "Message-ID-Enum" },
// *********************************************************************************
{ "name" : "QMI Indication OMA",
"type" : "Indication-ID-Enum" },
// *********************************************************************************
{ "name" : "Reset",
"type" : "Message",
"service" : "OMA",
"id" : "0x0000",
"version" : "1.0",
"output" : [ { "common-ref" : "Operation Result" } ] },
// *********************************************************************************
{ "name" : "Set Event Report",
"type" : "Message",
"service" : "OMA",
"id" : "0x0001",
"version" : "1.0",
"input" : [ { "name" : "Network Initiated Alert Reporting",
"id" : "0x10",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint8",
"public-format" : "gboolean" },
{ "name" : "Session State Reporting",
"id" : "0x11",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint8",
"public-format" : "gboolean" } ],
"output" : [ { "common-ref" : "Operation Result" } ] },
{ "name" : "Event Report",
"type" : "Indication",
"service" : "OMA",
"id" : "0x0001",
"output" : [ { "name" : "Network Initiated Alert",
"id" : "0x10",
"mandatory" : "no",
"type" : "TLV",
"format" : "sequence",
"contents" : [ { "name" : "Session Type",
"format" : "guint8",
"public-format" : "QmiOmaSessionType" },
{ "name" : "Session ID",
"format" : "guint16" } ] },
{ "name" : "Session State",
"id" : "0x11",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint8",
"public-format" : "QmiOmaSessionState" },
{ "name" : "Session Fail Reason",
"id" : "0x12",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint8",
"public-format" : "QmiOmaSessionFailedReason" } ] },
// *********************************************************************************
{ "name" : "Start Session",
"type" : "Message",
"service" : "OMA",
"id" : "0x0020",
"version" : "1.0",
"input" : [ { "name" : "Session Type",
"id" : "0x10",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint8",
"public-format" : "QmiOmaSessionType" } ],
"output" : [ { "common-ref" : "Operation Result" } ] },
// *********************************************************************************
{ "name" : "Cancel Session",
"type" : "Message",
"service" : "OMA",
"id" : "0x0021",
"version" : "1.0",
"output" : [ { "common-ref" : "Operation Result" } ] },
// *********************************************************************************
{ "name" : "Get Session Info",
"type" : "Message",
"service" : "OMA",
"id" : "0x0022",
"output" : [ { "name" : "Session Info",
"id" : "0x10",
"mandatory" : "no",
"type" : "TLV",
"format" : "sequence",
"contents" : [ { "name" : "Session State",
"format" : "guint8",
"public-format" : "QmiOmaSessionState" },
{ "name" : "Session Type",
"format" : "guint8",
"public-format" : "QmiOmaSessionType" } ],
"prerequisites": [ { "common-ref" : "Success" } ] },
{ "name" : "Session Failed Reason",
"id" : "0x11",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint8",
"public-format" : "QmiOmaSessionFailedReason",
"prerequisites" : [ { "field" : "Session Info Session State",
"operation" : "==",
"value" : "QMI_OMA_SESSION_STATE_FAILED" } ] },
{ "name" : "Retry Info",
"id" : "0x12",
"mandatory" : "no",
"type" : "TLV",
"format" : "sequence",
"contents" : [ { "name" : "Retry Count",
"format" : "guint8" },
{ "name" : "Retry Pause Timer",
"format" : "guint16" },
{ "name" : "Retry Pause Timer Remaining",
"format" : "guint16" } ],
"prerequisites": [ { "common-ref" : "Success" } ] },
{ "name" : "Network Initiated Alert",
"id" : "0x13",
"mandatory" : "no",
"type" : "TLV",
"format" : "sequence",
"contents" : [ { "name" : "Session Type",
"format" : "guint8",
"public-format" : "QmiOmaSessionType" },
{ "name" : "Session ID",
"format" : "guint16" } ],
"prerequisites": [ { "common-ref" : "Success" } ] },
{ "common-ref" : "Operation Result" } ] },
// *********************************************************************************
{ "name" : "Send Selection",
"type" : "Message",
"service" : "OMA",
"id" : "0x0023",
"input" : [ { "name" : "Network Initiated Alert Selection",
"id" : "0x10",
"mandatory" : "no",
"type" : "TLV",
"format" : "sequence",
"contents" : [ { "name" : "Control Point Selection Accept",
"format" : "guint8",
"public-format" : "gboolean" },
{ "name" : "Session ID",
"format" : "guint16" } ] } ],
"output" : [ { "common-ref" : "Operation Result" } ] },
// *********************************************************************************
{ "name" : "Get Feature Setting",
"type" : "Message",
"service" : "OMA",
"id" : "0x0024",
"output" : [ { "name" : "Device Provisioning Service Update Config",
"id" : "0x10",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint8",
"public-format" : "gboolean",
"prerequisites" : [ { "common-ref" : "Success" } ] },
{ "name" : "PRL Update Service Config",
"id" : "0x11",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint8",
"public-format" : "gboolean",
"prerequisites" : [ { "common-ref" : "Success" } ] },
{ "name" : "HFA Feature Config",
"id" : "0x12",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint8",
"public-format" : "gboolean",
"prerequisites" : [ { "common-ref" : "Success" } ] },
{ "name" : "HFA Feature Done State",
"id" : "0x13",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint8",
"public-format" : "QmiOmaHfaFeatureDoneState",
"prerequisites" : [ { "common-ref" : "Success" } ] },
{ "common-ref" : "Operation Result" } ] },
// *********************************************************************************
{ "name" : "Set Feature Setting",
"type" : "Message",
"service" : "OMA",
"id" : "0x0025",
"input" : [ { "name" : "Device Provisioning Service Update Config",
"id" : "0x10",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint8",
"public-format" : "gboolean" },
{ "name" : "PRL Update Service Config",
"id" : "0x11",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint8",
"public-format" : "gboolean" },
{ "name" : "HFA Feature Config",
"id" : "0x12",
"mandatory" : "no",
"type" : "TLV",
"format" : "guint8",
"public-format" : "gboolean" } ],
"output" : [ { "common-ref" : "Operation Result" } ] }
]

View File

@ -14,7 +14,8 @@ ALL_SECTIONS = \
$(top_builddir)/libqmi-glib/generated/qmi-wms.sections \
$(top_builddir)/libqmi-glib/generated/qmi-pds.sections \
$(top_builddir)/libqmi-glib/generated/qmi-pbm.sections \
$(top_builddir)/libqmi-glib/generated/qmi-uim.sections
$(top_builddir)/libqmi-glib/generated/qmi-uim.sections \
$(top_builddir)/libqmi-glib/generated/qmi-oma.sections
$(DOC_MODULE)-sections.mstamp: $(ALL_SECTIONS)
$(AM_V_GEN) \

View File

@ -673,6 +673,33 @@ qmi_uim_security_attribute_logic_get_type
qmi_uim_security_attribute_get_type
</SECTION>
<SECTION>
<FILE>qmi-enums-oma</FILE>
QmiOmaSessionType
QmiOmaSessionState
QmiOmaSessionFailedReason
QmiOmaHfaFeatureDoneState
<SUBSECTION Methods>
qmi_oma_session_type_get_string
qmi_oma_session_state_get_string
qmi_oma_session_failed_reason_get_string
qmi_oma_hfa_feature_done_state_get_string
<SUBSECTION Private>
qmi_oma_session_type_build_string_from_mask
qmi_oma_session_state_build_string_from_mask
qmi_oma_session_failed_reason_build_string_from_mask
qmi_oma_hfa_feature_done_state_build_string_from_mask
<SUBSECTION Standard>
QMI_TYPE_OMA_SESSION_TYPE
QMI_TYPE_OMA_SESSION_STATE
QMI_TYPE_OMA_SESSION_FAILED_REASON
QMI_TYPE_OMA_HFA_FEATURE_DONE_STATE
qmi_oma_session_type_get_type
qmi_oma_session_state_get_type
qmi_oma_session_failed_reason_get_type
qmi_oma_hfa_feature_done_state_get_type
</SECTION>
<SECTION>
<FILE>qmi-errors</FILE>
QmiCoreError

View File

@ -231,6 +231,27 @@
</section>
</chapter>
<chapter>
<title>Open Mobile Alliance Service (OMA)</title>
<xi:include href="xml/qmi-client-oma.xml"/>
<xi:include href="xml/qmi-enums-oma.xml"/>
<section>
<title>OMA Indications</title>
<xi:include href="xml/qmi-indication-oma-event-report.xml"/>
</section>
<section>
<title>OMA Requests</title>
<xi:include href="xml/qmi-message-oma-reset.xml"/>
<xi:include href="xml/qmi-message-oma-set-event-report.xml"/>
<xi:include href="xml/qmi-message-oma-start-session.xml"/>
<xi:include href="xml/qmi-message-oma-cancel-session.xml"/>
<xi:include href="xml/qmi-message-oma-get-session-info.xml"/>
<xi:include href="xml/qmi-message-oma-send-selection.xml"/>
<xi:include href="xml/qmi-message-oma-get-feature-setting.xml"/>
<xi:include href="xml/qmi-message-oma-set-feature-setting.xml"/>
</section>
</chapter>
<chapter id="object-tree">
<title>Object Hierarchy</title>
<xi:include href="xml/tree_index.sgml"/>

View File

@ -25,6 +25,7 @@ libqmi_glib_la_SOURCES = \
qmi-enums-pds.h \
qmi-enums-pbm.h \
qmi-enums-uim.h \
qmi-enums-oma.h \
qmi-enums.h qmi-enums-private.h \
qmi-utils.h qmi-utils.c \
qmi-message.h qmi-message.c \
@ -52,6 +53,7 @@ include_HEADERS = \
qmi-enums-pds.h \
qmi-enums-pbm.h \
qmi-enums-uim.h \
qmi-enums-oma.h \
qmi-utils.h \
qmi-message.h \
qmi-device.h \

View File

@ -13,7 +13,8 @@ GENERATED_H = \
qmi-wms.h \
qmi-pds.h \
qmi-pbm.h \
qmi-uim.h
qmi-uim.h \
qmi-oma.h
GENERATED_C = \
qmi-error-types.c \
@ -28,7 +29,8 @@ GENERATED_C = \
qmi-wms.c \
qmi-pds.c \
qmi-pbm.c \
qmi-uim.c
qmi-uim.c \
qmi-oma.c
GENERATED_SECTIONS = \
qmi-ctl.sections \
@ -38,7 +40,8 @@ GENERATED_SECTIONS = \
qmi-wms.sections \
qmi-pds.sections \
qmi-pbm.sections \
qmi-uim.sections
qmi-uim.sections \
qmi-oma.sections
# Error types
qmi-error-types.h: $(top_srcdir)/libqmi-glib/qmi-errors.h $(top_srcdir)/build-aux/templates/qmi-error-types-template.h
@ -69,10 +72,11 @@ ENUMS = \
$(top_srcdir)/libqmi-glib/qmi-enums-wms.h \
$(top_srcdir)/libqmi-glib/qmi-enums-pds.h \
$(top_srcdir)/libqmi-glib/qmi-enums-pbm.h \
$(top_srcdir)/libqmi-glib/qmi-enums-uim.h
$(top_srcdir)/libqmi-glib/qmi-enums-uim.h \
$(top_srcdir)/libqmi-glib/qmi-enums-oma.h
qmi-enum-types.h: $(ENUMS) $(top_srcdir)/build-aux/templates/qmi-enum-types-template.h
$(AM_V_GEN) $(GLIB_MKENUMS) \
--fhead "#ifndef __LIBQMI_GLIB_ENUM_TYPES_H__\n#define __LIBQMI_GLIB_ENUM_TYPES_H__\n#include \"qmi-enums.h\"\n#include \"qmi-enums-wds.h\"\n#include \"qmi-enums-dms.h\"\n#include \"qmi-enums-nas.h\"\n#include \"qmi-enums-wms.h\"\n#include \"qmi-enums-pds.h\"\n#include \"qmi-enums-pbm.h\"\n#include \"qmi-enums-uim.h\"\n" \
--fhead "#ifndef __LIBQMI_GLIB_ENUM_TYPES_H__\n#define __LIBQMI_GLIB_ENUM_TYPES_H__\n#include \"qmi-enums.h\"\n#include \"qmi-enums-wds.h\"\n#include \"qmi-enums-dms.h\"\n#include \"qmi-enums-nas.h\"\n#include \"qmi-enums-wms.h\"\n#include \"qmi-enums-pds.h\"\n#include \"qmi-enums-pbm.h\"\n#include \"qmi-enums-uim.h\"\n#include \"qmi-enums-oma.h\"\n" \
--template $(top_srcdir)/build-aux/templates/qmi-enum-types-template.h \
--ftail "#endif /* __LIBQMI_GLIB_ENUM_TYPES_H__ */\n" \
$(ENUMS) > $@
@ -194,6 +198,16 @@ qmi-uim.h qmi-uim.c qmi-uim.sections: $(top_srcdir)/data/qmi-service-uim.json $(
--include $(top_srcdir)/data/qmi-common.json \
--output qmi-uim
# OMA service
qmi-oma.h qmi-oma.c qmi-oma.sections: $(top_srcdir)/data/qmi-service-oma.json $(top_srcdir)/build-aux/qmi-codegen/*.py $(top_srcdir)/build-aux/qmi-codegen/qmi-codegen
$(AM_V_GEN) \
rm -f qmi-oma.h && \
rm -f qmi-oma.c && \
$(top_srcdir)/build-aux/qmi-codegen/qmi-codegen \
--input $(top_srcdir)/data/qmi-service-oma.json \
--include $(top_srcdir)/data/qmi-common.json \
--output qmi-oma
BUILT_SOURCES = $(GENERATED_H) $(GENERATED_C)
nodist_libqmi_glib_generated_la_SOURCES = \
@ -223,6 +237,7 @@ nodist_include_HEADERS = \
qmi-wms.h \
qmi-pds.h \
qmi-pbm.h \
qmi-uim.h
qmi-uim.h \
qmi-oma.h
CLEANFILES = $(GENERATED_H) $(GENERATED_C) $(GENERATED_SECTIONS)

View File

@ -58,6 +58,9 @@
#include "qmi-enums-uim.h"
#include "qmi-uim.h"
#include "qmi-enums-oma.h"
#include "qmi-oma.h"
/* generated */
#include "qmi-error-types.h"
#include "qmi-enum-types.h"

View File

@ -37,6 +37,7 @@
#include "qmi-pds.h"
#include "qmi-pbm.h"
#include "qmi-uim.h"
#include "qmi-oma.h"
#include "qmi-utils.h"
#include "qmi-error-types.h"
#include "qmi-enum-types.h"
@ -857,6 +858,10 @@ qmi_device_allocate_client (QmiDevice *self,
ctx->client_type = QMI_TYPE_CLIENT_UIM;
break;
case QMI_SERVICE_OMA:
ctx->client_type = QMI_TYPE_CLIENT_OMA;
break;
default:
g_simple_async_result_set_error (ctx->result,
QMI_CORE_ERROR,

124
libqmi-glib/qmi-enums-oma.h Normal file
View File

@ -0,0 +1,124 @@
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* libqmi-glib -- GLib/GIO based library to control QMI 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 Google Inc.
*/
#ifndef _LIBQMI_GLIB_QMI_ENUMS_OMA_H_
#define _LIBQMI_GLIB_QMI_ENUMS_OMA_H_
#if !defined (__LIBQMI_GLIB_H_INSIDE__) && !defined (LIBQMI_GLIB_COMPILATION)
#error "Only <libqmi-glib.h> can be included directly."
#endif
/**
* SECTION: qmi-enums-oma
* @title: OMA enumerations and flags
*
* This section defines enumerations and flags used in the OMA service
* interface.
*/
/**
* QmiOmaSessionType:
* @QMI_OMA_SESSION_TYPE_CLIENT_INITIATED_DEVICE_CONFIGURE: Client-initiated device configure.
* @QMI_OMA_SESSION_TYPE_CLIENT_INITIATED_PRL_UPDATE: Client-initiated PRL update.
* @QMI_OMA_SESSION_TYPE_CLIENT_INITIATED_HANDS_FREE_ACTIVATION: Client-initiated hands free activation.
* @QMI_OMA_SESSION_TYPE_DEVICE_INITIATED_HANDS_FREE_ACTIVATION: Device-initiated hands free activation.
* @QMI_OMA_SESSION_TYPE_NETWORK_INITIATED_PRL_UPDATE: Network-initiated PRL update.
* @QMI_OMA_SESSION_TYPE_NETWORK_INITIATED_DEVICE_CONFIGURE: Network-initiated device configure.
* @QMI_OMA_SESSION_TYPE_DEVICE_INITIATED_PRL_UPDATE: Device-initiated PRL update.
*
* Type of OMA-DM session.
*/
typedef enum {
QMI_OMA_SESSION_TYPE_CLIENT_INITIATED_DEVICE_CONFIGURE = 0,
QMI_OMA_SESSION_TYPE_CLIENT_INITIATED_PRL_UPDATE = 1,
QMI_OMA_SESSION_TYPE_CLIENT_INITIATED_HANDS_FREE_ACTIVATION = 2,
QMI_OMA_SESSION_TYPE_DEVICE_INITIATED_HANDS_FREE_ACTIVATION = 3,
QMI_OMA_SESSION_TYPE_NETWORK_INITIATED_PRL_UPDATE = 4,
QMI_OMA_SESSION_TYPE_NETWORK_INITIATED_DEVICE_CONFIGURE = 5,
QMI_OMA_SESSION_TYPE_DEVICE_INITIATED_PRL_UPDATE = 6
} QmiOmaSessionType;
/**
* QmiOmaSessionState:
* @QMI_OMA_SESSION_STATE_COMPLETE_INFORMATION_UPDATED: Session complete and information updated.
* @QMI_OMA_SESSION_STATE_COMPLETE_UPDATED_INFORMATION_UNAVAILABLE: Session complete but updated information not available.
* @QMI_OMA_SESSION_STATE_FAILED: Session failed.
* @QMI_OMA_SESSION_STATE_RETRYING: Session retrying.
* @QMI_OMA_SESSION_STATE_CONNECTING: Session connecting.
* @QMI_OMA_SESSION_STATE_CONNECTED: Session connected.
* @QMI_OMA_SESSION_STATE_AUTHENTICATED: Session authenticated.
* @QMI_OMA_SESSION_STATE_MDN_DOWNLOADED: MDN downloaded.
* @QMI_OMA_SESSION_STATE_MSID_DOWNLOADED: MSID downloaded.
* @QMI_OMA_SESSION_STATE_PRL_DOWNLOADED: PRL downloaded.
* @QMI_OMA_SESSION_STATE_MIP_PROFILE_DOWNLOADED: MIP profile downloaded.
*
* State of the OMA-DM session.
*/
typedef enum {
QMI_OMA_SESSION_STATE_COMPLETE_INFORMATION_UPDATED = 0,
QMI_OMA_SESSION_STATE_COMPLETE_UPDATED_INFORMATION_UNAVAILABLE = 1,
QMI_OMA_SESSION_STATE_FAILED = 2,
QMI_OMA_SESSION_STATE_RETRYING = 3,
QMI_OMA_SESSION_STATE_CONNECTING = 4,
QMI_OMA_SESSION_STATE_CONNECTED = 5,
QMI_OMA_SESSION_STATE_AUTHENTICATED = 6,
QMI_OMA_SESSION_STATE_MDN_DOWNLOADED = 7,
QMI_OMA_SESSION_STATE_MSID_DOWNLOADED = 8,
QMI_OMA_SESSION_STATE_PRL_DOWNLOADED = 9,
QMI_OMA_SESSION_STATE_MIP_PROFILE_DOWNLOADED = 10
} QmiOmaSessionState;
/**
* QmiOmaSessionFailedReason:
* @QMI_OMA_SESSION_FAILED_REASON_UNKNOWN: Unknown reason.
* @QMI_OMA_SESSION_FAILED_REASON_NETWORK_UNAVAILABLE: Network unavailable.
* @QMI_OMA_SESSION_FAILED_REASON_SERVER_UNAVAILABLE: Server unavailable.
* @QMI_OMA_SESSION_FAILED_REASON_AUTHENTICATION_FAILED: Authentication failed.
* @QMI_OMA_SESSION_FAILED_REASON_MAX_RETRY_EXCEEDED: Maximum retries exceeded.
* @QMI_OMA_SESSION_FAILED_REASON_SESSION_CANCELLED: Session cancelled.
*
* Session failure reason.
*/
typedef enum {
QMI_OMA_SESSION_FAILED_REASON_UNKNOWN = 0,
QMI_OMA_SESSION_FAILED_REASON_NETWORK_UNAVAILABLE = 1,
QMI_OMA_SESSION_FAILED_REASON_SERVER_UNAVAILABLE = 2,
QMI_OMA_SESSION_FAILED_REASON_AUTHENTICATION_FAILED = 3,
QMI_OMA_SESSION_FAILED_REASON_MAX_RETRY_EXCEEDED = 4,
QMI_OMA_SESSION_FAILED_REASON_SESSION_CANCELLED = 5
} QmiOmaSessionFailedReason;
/**
* QmiOmaHfaFeatureDoneState:
* @QMI_OMA_HFA_FEATURE_DONE_STATE_NONE: None.
* @QMI_OMA_HFA_FEATURE_DONE_STATE_SUCCEEDED: Succeeded.
* @QMI_OMA_HFA_FEATURE_DONE_STATE_FAILED: Failed.
*
* HFA feature done state.
*/
typedef enum {
QMI_OMA_HFA_FEATURE_DONE_STATE_NONE = 0,
QMI_OMA_HFA_FEATURE_DONE_STATE_SUCCEEDED = 1,
QMI_OMA_HFA_FEATURE_DONE_STATE_FAILED = 2
} QmiOmaHfaFeatureDoneState;
#endif /* _LIBQMI_GLIB_QMI_ENUMS_OMA_H_ */