All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yang Gu <gyagp0@gmail.com>
To: ofono@ofono.org
Subject: [PATCH 03/13] Add parser for frames information objects
Date: Thu, 22 Apr 2010 23:12:20 +0800	[thread overview]
Message-ID: <1271949150-9085-3-git-send-email-yang.gu@intel.com> (raw)
In-Reply-To: <1271949150-9085-1-git-send-email-yang.gu@intel.com>

[-- Attachment #1: Type: text/plain, Size: 2239 bytes --]

---
 src/stkutil.c |   31 +++++++++++++++++++++++++++++++
 src/stkutil.h |   12 ++++++++++++
 2 files changed, 43 insertions(+), 0 deletions(-)

diff --git a/src/stkutil.c b/src/stkutil.c
index fab60a9..f2b4fba 100644
--- a/src/stkutil.c
+++ b/src/stkutil.c
@@ -1602,6 +1602,35 @@ static gboolean parse_dataobj_frame_layout(struct comprehension_tlv_iter *iter,
 	return TRUE;
 }
 
+/* Defined in TS 102.223 Section 8.79 */
+static gboolean parse_dataobj_frames_info(struct comprehension_tlv_iter *iter,
+						void *user)
+{
+	struct stk_frames_info *fi = user;
+	const unsigned char *data;
+	unsigned char len = comprehension_tlv_iter_get_length(iter);
+
+	if (len < 1)
+		return FALSE;
+
+	data = comprehension_tlv_iter_get_data(iter);
+
+	if (data[0] > 0x0f)
+		return FALSE;
+
+	if ((len == 1 && data[0] != 0) || (len > 1 && data[0] == 0))
+		return FALSE;
+
+	if (len == 1)
+		return TRUE;
+
+	fi->id = data[0];
+	fi->len = len - 1;
+	memcpy(fi->list, data + 1, fi->len);
+
+	return TRUE;
+}
+
 /* Defined in TS 102.223 Section 8.80 */
 static gboolean parse_dataobj_frame_id(struct comprehension_tlv_iter *iter,
 					void *user)
@@ -1767,6 +1796,8 @@ static dataobj_handler handler_for_type(enum stk_data_object_type type)
 		return parse_dataobj_browsing_status;
 	case STK_DATA_OBJECT_TYPE_FRAME_LAYOUT:
 		return parse_dataobj_frame_layout;
+	case STK_DATA_OBJECT_TYPE_FRAMES_INFO:
+		return parse_dataobj_frames_info;
 	case STK_DATA_OBJECT_TYPE_FRAME_ID:
 		return parse_dataobj_frame_id;
 	default:
diff --git a/src/stkutil.h b/src/stkutil.h
index 52b62af..c2579dc 100644
--- a/src/stkutil.h
+++ b/src/stkutil.h
@@ -709,6 +709,18 @@ struct stk_frame_layout {
 	unsigned int len;
 };
 
+/*
+ * According to 102.223 Section 8.79 the length of CTLV is 1 byte. This means
+ * that the maximum length is 127 bytes for the total length of default frame
+ * id and frame information list. Thus the maximum length of frame information
+ * list is 126 bytes.
+ */
+struct stk_frames_info {
+	unsigned char id;
+	unsigned char list[126];
+	unsigned int len;
+};
+
 struct stk_command_display_text {
 	char *text;
 	struct stk_icon_id icon_id;
-- 
1.7.0.4


  parent reply	other threads:[~2010-04-22 15:12 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-22 15:12 [PATCH 01/13] Add parser for browsing status objects Yang Gu
2010-04-22 15:12 ` [PATCH 02/13] Add parser for frame layout objects Yang Gu
2010-04-22 15:12 ` Yang Gu [this message]
2010-04-22 15:12 ` [PATCH 04/13] Add parser for meid objects Yang Gu
2010-04-22 15:12 ` [PATCH 05/13] Add parser for multimedia message reference objects Yang Gu
2010-04-22 15:12 ` [PATCH 06/13] Add parser for multimedia message identifier objects Yang Gu
2010-04-22 15:12 ` [PATCH 07/13] Add parser for multimedia message transfer status objects Yang Gu
2010-04-22 15:12 ` [PATCH 08/13] Add parser for mm content identifier objects Yang Gu
2010-04-22 15:12 ` [PATCH 09/13] Add parser for multimedia message notification objects Yang Gu
2010-04-22 15:12 ` [PATCH 10/13] Add parser for last envelope objects Yang Gu
2010-04-22 15:12 ` [PATCH 11/13] Add parser for registry application data objects Yang Gu
2010-04-22 15:12 ` [PATCH 12/13] Add parser for activate descriptor objects Yang Gu
2010-04-22 15:12 ` [PATCH 13/13] Add parser for broadcast network information objects Yang Gu
2010-04-23 16:54 ` [PATCH 01/13] Add parser for browsing status objects Denis Kenzior

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1271949150-9085-3-git-send-email-yang.gu@intel.com \
    --to=gyagp0@gmail.com \
    --cc=ofono@ofono.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.