aboutsummaryrefslogtreecommitdiff
path: root/libqcdm/src
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2010-09-01 10:51:22 -0500
committerDan Williams <dcbw@redhat.com>2010-09-01 10:51:22 -0500
commitf3024b46b495ea81563d712059ca6fc0c40ea7c8 (patch)
tree350dc19e1d612561106c2d38f1ba4478a2f72920 /libqcdm/src
parent48aabcb60be8aed9822de373c14df01fead62ee3 (diff)
qcdm: add event reporting on/off command
Doesn't parse any events yet since we don't know what any events are. We also need to fix up ModemManager to handle unsolicited responses in the QcdmSerialPort class.
Diffstat (limited to 'libqcdm/src')
-rw-r--r--libqcdm/src/commands.c29
-rw-r--r--libqcdm/src/commands.h11
-rw-r--r--libqcdm/src/dm-commands.h14
3 files changed, 54 insertions, 0 deletions
diff --git a/libqcdm/src/commands.c b/libqcdm/src/commands.c
index db53fc7c..47b517de 100644
--- a/libqcdm/src/commands.c
+++ b/libqcdm/src/commands.c
@@ -1095,6 +1095,35 @@ qcmd_cmd_ext_logmask_result_get_item (QCDMResult *result,
/**********************************************************************/
gsize
+qcdm_cmd_event_report_new (char *buf, gsize len, gboolean start, GError **error)
+{
+ char cmdbuf[4];
+ DMCmdEventReport *cmd = (DMCmdEventReport *) &cmdbuf[0];
+
+ g_return_val_if_fail (buf != NULL, 0);
+ g_return_val_if_fail (len >= sizeof (*cmd) + DIAG_TRAILER_LEN, 0);
+
+ memset (cmd, 0, sizeof (*cmd));
+ cmd->code = DIAG_CMD_EVENT_REPORT;
+ cmd->on = start ? 1 : 0;
+
+ return dm_encapsulate_buffer (cmdbuf, sizeof (*cmd), sizeof (cmdbuf), buf, len);
+}
+
+QCDMResult *
+qcdm_cmd_event_report_result (const char *buf, gsize len, GError **error)
+{
+ g_return_val_if_fail (buf != NULL, NULL);
+
+ if (!check_command (buf, len, DIAG_CMD_EVENT_REPORT, sizeof (DMCmdEventReport), error))
+ return NULL;
+
+ return qcdm_result_new ();
+}
+
+/**********************************************************************/
+
+gsize
qcdm_cmd_zte_subsys_status_new (char *buf, gsize len, GError **error)
{
char cmdbuf[sizeof (DMCmdSubsysHeader) + 2];
diff --git a/libqcdm/src/commands.h b/libqcdm/src/commands.h
index 91997f3b..50a6f49a 100644
--- a/libqcdm/src/commands.h
+++ b/libqcdm/src/commands.h
@@ -459,6 +459,17 @@ gboolean qcmd_cmd_ext_logmask_result_get_item (QCDMResult *result,
/**********************************************************************/
+gsize qcdm_cmd_event_report_new (char *buf,
+ gsize len,
+ gboolean start,
+ GError **error);
+
+QCDMResult *qcdm_cmd_event_report_result (const char *buf,
+ gsize len,
+ GError **error);
+
+/**********************************************************************/
+
#define QCDM_CMD_ZTE_SUBSYS_STATUS_ITEM_SIGNAL_INDICATOR "signal-indicator"
gsize qcdm_cmd_zte_subsys_status_new (char *buf,
diff --git a/libqcdm/src/dm-commands.h b/libqcdm/src/dm-commands.h
index 8f995fef..6ce3c5da 100644
--- a/libqcdm/src/dm-commands.h
+++ b/libqcdm/src/dm-commands.h
@@ -377,6 +377,20 @@ struct DMCmdExtLogMask {
} __attribute__ ((packed));
typedef struct DMCmdExtLogMask DMCmdExtLogMask;
+struct DMCmdEventReport {
+ guint8 code;
+ guint8 on;
+} __attribute__ ((packed));
+typedef struct DMCmdEventReport DMCmdEventReport;
+
+struct DMCmdEventReportRsp {
+ guint8 code;
+ guint16 len;
+ guint16 event_id;
+ guint8 data[0];
+} __attribute__ ((packed));
+typedef struct DMCmdEventReportRsp DMCmdEventReportRsp;
+
/* DIAG_SUBSYS_NW_CONTROL_* subsys command */
struct DMCmdSubsysNwSnapshotReq {
DMCmdSubsysHeader hdr;