libgsmd: Catch up with upstream changes. All patches are applied now.
authorStefan Schmidt <stefan@datenfreihafen.org>
Fri, 17 Aug 2007 19:10:08 +0000 (19:10 +0000)
committerStefan Schmidt <stefan@datenfreihafen.org>
Fri, 17 Aug 2007 19:10:08 +0000 (19:10 +0000)
packages/gsm/files/extreplychars.patch [deleted file]
packages/gsm/files/getopt-wait-interpreter-ready.patch [deleted file]
packages/gsm/files/libgsmd-tool-fix.patch [deleted file]
packages/gsm/files/mlbuf-in-gsmd-struct.patch [deleted file]
packages/gsm/files/sms-hacks.patch [deleted file]
packages/gsm/files/tihtc-csq-fix.patch [deleted file]
packages/gsm/files/universal-wcdma.patch [deleted file]
packages/gsm/libgsmd_svn.bb

diff --git a/packages/gsm/files/extreplychars.patch b/packages/gsm/files/extreplychars.patch
deleted file mode 100644 (file)
index 8ebc343..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-Index: gsm/src/gsmd/atcmd.c
-===================================================================
---- gsm.orig/src/gsmd/atcmd.c  2007-06-03 10:46:19.000000000 +0200
-+++ gsm/src/gsmd/atcmd.c       2007-06-03 15:54:53.000000000 +0200
-@@ -208,7 +208,7 @@
-        *    TBD
-        */
--      if (buf[0] == '+' || buf[0] == '%') {
-+      if (buf[0] == '+' || strchr(g->vendorpl->ext_chars, buf[0])) {
-               /* an extended response */
-               const char *colon = strchr(buf, ':');
-               if (!colon) {
-@@ -255,7 +255,7 @@
-               }
-               if (cmd) {
--                      if (cmd->buf[2] != '+' && cmd->buf[2] != '%') {
-+                      if (cmd->buf[2] != '+' && strchr(g->vendorpl->ext_chars, cmd->buf[2]) == NULL) {
-                               gsmd_log(GSMD_ERROR, "extd reply to non-extd command?\n");
-                               return -EINVAL;
-                       }
-Index: gsm/src/gsmd/vendor_qc.c
-===================================================================
---- gsm.orig/src/gsmd/vendor_qc.c      2007-06-03 10:46:19.000000000 +0200
-+++ gsm/src/gsmd/vendor_qc.c   2007-06-03 11:45:58.000000000 +0200
-@@ -97,6 +97,7 @@
- struct gsmd_vendor_plugin gsmd_vendor_plugin = {
-       .name = "Qualcomm msm6250",
-+      .ext_chars = "@",
-       .num_unsolicit = ARRAY_SIZE(qc_unsolicit),
-       .unsolicit = qc_unsolicit,
-       .detect = &qc_detect,
-Index: gsm/src/gsmd/vendor_ti.c
-===================================================================
---- gsm.orig/src/gsmd/vendor_ti.c      2007-06-03 10:46:19.000000000 +0200
-+++ gsm/src/gsmd/vendor_ti.c   2007-06-03 11:45:58.000000000 +0200
-@@ -303,6 +303,7 @@
- struct gsmd_vendor_plugin gsmd_vendor_plugin = {
-       .name = "TI Calypso",
-+      .ext_chars = "%@",
-       .num_unsolicit = ARRAY_SIZE(ticalypso_unsolicit),
-       .unsolicit = ticalypso_unsolicit,
-       .detect = &ticalypso_detect,
-Index: gsm/include/gsmd/vendorplugin.h
-===================================================================
---- gsm.orig/include/gsmd/vendorplugin.h       2007-02-16 15:12:40.000000000 +0100
-+++ gsm/include/gsmd/vendorplugin.h    2007-06-03 11:45:58.000000000 +0200
-@@ -12,6 +12,7 @@
- struct gsmd_vendor_plugin {
-       struct llist_head list;
-       unsigned char *name;
-+      unsigned char *ext_chars;
-       unsigned int num_unsolicit;
-       const struct gsmd_unsolicit *unsolicit;
-       int (*detect)(struct gsmd *g);
-Index: gsm/src/gsmd/vendor_tihtc.c
-===================================================================
---- gsm.orig/src/gsmd/vendor_tihtc.c   2007-06-03 15:55:31.000000000 +0200
-+++ gsm/src/gsmd/vendor_tihtc.c        2007-06-03 15:55:43.000000000 +0200
-@@ -298,6 +298,7 @@
- struct gsmd_vendor_plugin gsmd_vendor_plugin = {
-       .name = "TI Calypso / HTC firmware",
-+      .ext_chars = "%",
-       .num_unsolicit = ARRAY_SIZE(tihtc_unsolicit),
-       .unsolicit = tihtc_unsolicit,
-       .detect = &tihtc_detect,
diff --git a/packages/gsm/files/getopt-wait-interpreter-ready.patch b/packages/gsm/files/getopt-wait-interpreter-ready.patch
deleted file mode 100644 (file)
index 52b0da1..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-Index: gsm/src/gsmd/gsmd.c
-===================================================================
---- gsm.orig/src/gsmd/gsmd.c   2007-06-03 11:57:43.000000000 +0200
-+++ gsm/src/gsmd/gsmd.c        2007-06-03 11:57:45.000000000 +0200
-@@ -311,6 +311,7 @@
-       { "leak-report", 0, NULL, 'L' },
-       { "vendor", 1, NULL, 'v' },
-       { "machine", 1, NULL, 'm' },
-+      { "wait", 1, NULL, 'w' },
-       { 0, 0, 0, 0 }
- };
-@@ -333,6 +334,7 @@
-              "\t-l file\t--logfile file\tSpecify a logfile to log to\n"
-              "\t-v\t--vendor v\tSpecify GSM modem vendor plugin\n"
-              "\t-m\t--machine m\tSpecify GSM modem machine plugin\n"
-+             "\t-w\t--wait m\tWait for the AT Interpreter Ready message\n"
-              );
- }
-@@ -362,6 +364,7 @@
-       char *logfile = "syslog";
-       char *vendor_name = NULL;
-       char *machine_name = NULL;
-+      int wait = -1;
-       signal(SIGTERM, sig_handler);
-       signal(SIGINT, sig_handler);
-@@ -374,7 +377,7 @@
-       print_header();
-       /*FIXME: parse commandline, set daemonize, device, ... */
--      while ((argch = getopt_long(argc, argv, "FVLdhp:s:l:v:m:", opts, NULL)) != -1) {
-+      while ((argch = getopt_long(argc, argv, "FVLdhp:s:l:v:m:w:", opts, NULL)) != -1) {
-               switch (argch) {
-               case 'V':
-                       /* FIXME */
-@@ -411,6 +414,9 @@
-               case 'm':
-                       machine_name = optarg;
-                       break;
-+              case 'w':
-+                      wait = atoi(optarg);
-+                      break;
-               }
-       }
-@@ -455,6 +461,9 @@
-               exit(1);
-       }
-+      if (wait >= 0)
-+              g.interpreter_ready = !wait;
-+
-       if (atcmd_init(&g, fd) < 0) {
-               fprintf(stderr, "can't initialize UART device\n");
-               exit(1);
diff --git a/packages/gsm/files/libgsmd-tool-fix.patch b/packages/gsm/files/libgsmd-tool-fix.patch
deleted file mode 100644 (file)
index 8938f5a..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-Index: gsm/src/util/atcmd.c
-===================================================================
---- gsm.orig/src/util/atcmd.c  2007-07-31 11:44:32.000000000 +0200
-+++ gsm/src/util/atcmd.c       2007-07-31 11:46:44.000000000 +0200
-@@ -91,9 +91,11 @@
-                               continue;
-                       }
-                       printf("STR=`%s'\n", buf);
-+
-+                      /* this is a synchronous call for a passthrough
-+                       * command */
-+                      lgsm_passthrough(lgsmh, buf, rbuf, &rlen);
-+                      printf("RSTR=`%s'\n", rbuf);
-               }
--              /* this is a synchronous call for a passthrough command */
--              lgsm_passthrough(lgsmh, buf, rbuf, &rlen);
--              printf("RSTR=`%s'\n", rbuf);
-       }
- }
diff --git a/packages/gsm/files/mlbuf-in-gsmd-struct.patch b/packages/gsm/files/mlbuf-in-gsmd-struct.patch
deleted file mode 100644 (file)
index d46eae8..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-Index: gsm/include/gsmd/gsmd.h
-===================================================================
---- gsm.orig/include/gsmd/gsmd.h       2007-07-31 14:07:47.000000000 +0200
-+++ gsm/include/gsmd/gsmd.h    2007-07-31 14:09:02.000000000 +0200
-@@ -74,6 +74,8 @@
-       struct gsmd_device_state dev_state;
-       struct llist_head operators;            /* cached list of operator names */
-+      unsigned int mlbuf_len;
-+      unsigned char *mlbuf;           /* ml_parse buffer */
- };
- struct gsmd_user {
-Index: gsm/src/gsmd/atcmd.c
-===================================================================
---- gsm.orig/src/gsmd/atcmd.c  2007-07-31 14:06:49.000000000 +0200
-+++ gsm/src/gsmd/atcmd.c       2007-07-31 14:12:33.000000000 +0200
-@@ -175,9 +175,7 @@
- {
-       struct gsmd *g = ctx;
-       struct gsmd_atcmd *cmd = NULL;
--      static char mlbuf[MLPARSE_BUF_SIZE];
-       int rc = 0, final = 0;
--      int mlbuf_len;
-       DEBUGP("buf=`%s'(%d)\n", buf, len);
-@@ -273,15 +271,15 @@
-                       /* it might be a multiline response, so if there's a previous
-                          response, send out mlbuf and start afresh with an empty buffer */
--                      if (mlbuf[0] != 0) {
-+                      if (g->mlbuf[0] != 0) {
-                               if (!cmd->cb) {
-                                       gsmd_log(GSMD_NOTICE, "command without cb!!!\n");
-                               } else {
-                                       DEBUGP("Calling cmd->cb()\n");
--                                      cmd->resp = mlbuf;
-+                                      cmd->resp = g->mlbuf;
-                                       rc = cmd->cb(cmd, cmd->ctx, cmd->resp);
-                                       DEBUGP("Clearing mlbuf\n");
--                                      mlbuf[0] = 0;
-+                                      g->mlbuf[0] = 0;
-                               }
-                       }
-@@ -334,16 +332,16 @@
-       /* we reach here, if we are at an information response that needs to be
-        * passed on */
--      if (mlbuf[0] == 0) {
-+      if (g->mlbuf[0] == 0) {
-               DEBUGP("Filling mlbuf\n");
--              strncat(mlbuf, buf, sizeof(mlbuf)-1);
-+              strncat(g->mlbuf, buf, MLPARSE_BUF_SIZE-1);
-       } else {
-               DEBUGP("Appending buf to mlbuf\n");
--              mlbuf_len = strlen(mlbuf);
--              if (mlbuf_len+1 < sizeof(mlbuf)) {
--                      mlbuf[mlbuf_len] = '\n';
--                      mlbuf[mlbuf_len+1] = '\0';
--                      strncat(mlbuf, buf, sizeof(mlbuf)-mlbuf_len-2);
-+              g->mlbuf_len = strlen(g->mlbuf);
-+              if (g->mlbuf_len+1 < MLPARSE_BUF_SIZE) {
-+                      g->mlbuf[g->mlbuf_len] = '\n';
-+                      g->mlbuf[g->mlbuf_len+1] = '\0';
-+                      strncat(g->mlbuf, buf, MLPARSE_BUF_SIZE-g->mlbuf_len-2);
-               } else {
-                       DEBUGP("response too big for mlbuf!!!\n");
-                       return -EFBIG;
-@@ -365,13 +363,13 @@
-       } else {
-               DEBUGP("Calling final cmd->cb()\n");
-               /* send final result code if there is no information response in mlbuf */
--              if (mlbuf[0] == 0)
-+              if (g->mlbuf[0] == 0)
-                       cmd->resp = buf;
-               else
--                      cmd->resp = mlbuf;
-+                      cmd->resp = g->mlbuf;
-               rc = cmd->cb(cmd, cmd->ctx, cmd->resp);
-               DEBUGP("Clearing mlbuf\n");
--              mlbuf[0] = 0;
-+              g->mlbuf[0] = 0;
-       }
-       /* remove from list of currently executing cmds */
-Index: gsm/src/gsmd/gsmd.c
-===================================================================
---- gsm.orig/src/gsmd/gsmd.c   2007-07-31 14:06:47.000000000 +0200
-+++ gsm/src/gsmd/gsmd.c        2007-07-31 14:06:50.000000000 +0200
-@@ -300,6 +300,10 @@
- {
-       INIT_LLIST_HEAD(&g->users);
-+      g->mlbuf = talloc_array(gsmd_tallocs, unsigned char, MLPARSE_BUF_SIZE);
-+      if (!g->mlbuf)
-+              return -ENOMEM;
-+
-       return 0;
- }
diff --git a/packages/gsm/files/sms-hacks.patch b/packages/gsm/files/sms-hacks.patch
deleted file mode 100644 (file)
index ba24844..0000000
+++ /dev/null
@@ -1,820 +0,0 @@
-From 3e5832569d3b29a90b29b5d5ac0ffad4765bcff3 Mon Sep 17 00:00:00 2001
-From: Andrzej Zaborowski <balrog@zabor.org>
-Date: Fri, 6 Jul 2007 06:55:12 +0200
-Subject: [PATCH] SMS hacks 2
-
----
- include/gsmd/gsmd.h         |    8 ++-
- include/gsmd/usock.h        |   35 ++++++++-
- include/gsmd/vendorplugin.h |    2 +-
- include/libgsmd/sms.h       |    2 +-
- src/gsmd/atcmd.c            |  130 +++++++++++++++++++-------------
- src/gsmd/sms_cb.c           |   19 ++++-
- src/gsmd/usock.c            |  175 +++++++++++++++++++++++++++++++++++++-----
- src/gsmd/vendor_ti.c        |    2 +-
- src/libgsmd/libgsmd_sms.c   |   26 +++++--
- 11 files changed, 320 insertions(+), 91 deletions(-)
-
-Index: gsm/include/gsmd/gsmd.h
-===================================================================
---- gsm.orig/include/gsmd/gsmd.h       2007-07-31 14:09:02.000000000 +0200
-+++ gsm/include/gsmd/gsmd.h    2007-07-31 14:23:32.000000000 +0200
-@@ -27,6 +27,7 @@
-       u_int32_t buflen;
-       u_int16_t id;
-       u_int8_t flags;
-+      char *cur;
-       char buf[];
- };
-@@ -36,6 +37,8 @@
-       LLPARSE_STATE_IDLE_LF,          /* LF before response (V1) */
-       LLPARSE_STATE_RESULT,           /* within result payload */
-       LLPARSE_STATE_RESULT_CR,        /* CR after result */
-+      LLPARSE_STATE_PROMPT,           /* within a "> " prompt */
-+      LLPARSE_STATE_PROMPT_SPC,       /* a complete "> " prompt */
-       LLPARSE_STATE_ERROR,            /* something went wrong */
-                                       /* ... idle again */
- };
-@@ -52,6 +55,7 @@
-       unsigned int flags;
-       void *ctx;
-       int (*cb)(const char *buf, int len, void *ctx);
-+      int (*prompt_cb)(void *ctx);
-       char *cur;
-       char buf[LLPARSE_BUF_SIZE];
- };
-@@ -59,6 +63,7 @@
- struct gsmd;
- #define GSMD_FLAG_V0          0x0001  /* V0 responses to be expected from TA */
-+#define GSMD_FLAG_SMS_FMT     0x0002  /* Use TEXT rather than PDU mode */
- struct gsmd {
-       unsigned int flags;
-@@ -94,7 +99,8 @@
- extern int gsmdlog_init(const char *path);
- /* write a message to the daemons' logfile */
--void __gsmd_log(int level, const char *file, int line, const char *function, const char *message, ...);
-+void __gsmd_log(int level, const char *file, int line, const char *function, const char *message, ...)
-+      __attribute__ ((__format__ (__printf__, 5, 6)));
- /* macro for logging including filename and line number */
- #define gsmd_log(level, format, args ...) \
-       __gsmd_log(level, __FILE__, __LINE__, __FUNCTION__, format, ## args)
-Index: gsm/include/gsmd/usock.h
-===================================================================
---- gsm.orig/include/gsmd/usock.h      2007-07-31 13:58:37.000000000 +0200
-+++ gsm/include/gsmd/usock.h   2007-07-31 14:23:32.000000000 +0200
-@@ -139,7 +139,7 @@
- /* for SMS-SUBMIT, SMS-DELIVER */
- enum gsmd_sms_tp_udhi {
-       GSMD_SMS_TP_UDHI_NO_HEADER      = (0<<6),
--      GSMD_SMS_TP_UDHI_WTIH_HEADER    = (1<<6),
-+      GSMD_SMS_TP_UDHI_WITH_HEADER    = (1<<6),
- };
- /* SMS delflg from 3GPP TS 07.05, Clause 3.5.4 */
-@@ -160,6 +160,34 @@
-       GSMD_PHONEBOOK_GET_SUPPORT      = 6,
- };
-+/* Type-of-Address, Numbering Plan Identification field */
-+enum gsmd_toa_npi {
-+      GSMD_TOA_NPI_UNKNOWN            = 0x0,
-+      GSMD_TOA_NPI_ISDN               = 0x1,
-+      GSMD_TOA_NPI_DATA               = 0x3,
-+      GSMD_TOA_NPI_TELEX              = 0x4,
-+      GSMD_TOA_NPI_NATIONAL           = 0x8,
-+      GSMD_TOA_NPI_PRIVATE            = 0x9,
-+      GSMD_TOA_NPI_ERMES              = 0xa,
-+      GSMD_TOA_NPI_RESERVED           = 0xf,
-+};
-+
-+/* Type-of-Address, Type-of-Number field */
-+enum gsmd_toa_ton {
-+      GSMD_TOA_TON_UNKNOWN            = (0<<4),
-+      GSMD_TOA_TON_INTERNATIONAL      = (1<<4),
-+      GSMD_TOA_TON_NATIONAL           = (2<<4),
-+      GSMD_TOA_TON_NETWORK            = (3<<4),
-+      GSMD_TOA_TON_SUBSCRIBER         = (4<<4),
-+      GSMD_TOA_TON_ALPHANUMERIC       = (5<<4),
-+      GSMD_TOA_TON_ABBREVIATED        = (6<<4),
-+};
-+
-+/* Type-of-Address, bit 7 always 1 */
-+enum gsmd_toa_reserved {
-+      GSMD_TOA_RESERVED               = (1<<7),
-+};
-+
- /* Length from 3GPP TS 04.08, Clause 10.5.4.7 */
- #define GSMD_ADDR_MAXLEN      32
-@@ -269,6 +297,11 @@
-       char user_data[140];
- } __attribute__ ((packed));
-+struct gsmd_sms_send {
-+      struct gsmd_addr addr;
-+      struct gsmd_sms payload;
-+};
-+
- /* Refer to GSM 07.07 subclause 8.12 */
- struct gsmd_phonebook_readrg {
-       u_int8_t index1;
-Index: gsm/include/gsmd/vendorplugin.h
-===================================================================
---- gsm.orig/include/gsmd/vendorplugin.h       2007-07-31 13:58:38.000000000 +0200
-+++ gsm/include/gsmd/vendorplugin.h    2007-07-31 14:23:32.000000000 +0200
-@@ -12,7 +12,7 @@
- struct gsmd_vendor_plugin {
-       struct llist_head list;
-       unsigned char *name;
--      unsigned char *ext_chars;
-+      char *ext_chars;
-       unsigned int num_unsolicit;
-       const struct gsmd_unsolicit *unsolicit;
-       int (*detect)(struct gsmd *g);
-Index: gsm/include/libgsmd/sms.h
-===================================================================
---- gsm.orig/include/libgsmd/sms.h     2007-07-31 13:58:38.000000000 +0200
-+++ gsm/include/libgsmd/sms.h  2007-07-31 14:23:32.000000000 +0200
-@@ -83,7 +83,7 @@
- extern int lgsmd_sms_send(struct lgsm_handle *lh, const struct lgsm_sms *sms);
- /* Write Message to Memory */
--extern int lgsmd_sms_write(struct lgsm_handle *lh, 
-+extern int lgsmd_sms_write(struct lgsm_handle *lh,
-               const struct lgsm_sms_write *sms_write);
- /* Packing of 7-bit characters, refer to GSM 03.38 subclause 6.1.2.1.1 */
-Index: gsm/src/gsmd/atcmd.c
-===================================================================
---- gsm.orig/src/gsmd/atcmd.c  2007-07-31 14:13:00.000000000 +0200
-+++ gsm/src/gsmd/atcmd.c       2007-07-31 14:23:32.000000000 +0200
-@@ -82,9 +82,12 @@
-       switch (llp->state) {
-       case LLPARSE_STATE_IDLE:
-+      case LLPARSE_STATE_PROMPT_SPC:
-               if (llp->flags & LGSM_ATCMD_F_EXTENDED) {
-                       if (byte == '\r')
-                               llp->state = LLPARSE_STATE_IDLE_CR;
-+                      else if (byte == '>')
-+                              llp->state = LLPARSE_STATE_PROMPT;
-                       else {
- #ifdef STRICT
-                               llp->state = LLPARSE_STATE_ERROR;
-@@ -108,6 +111,8 @@
-               /* can we really go directly into result_cr ? */
-               if (byte == '\r')
-                       llp->state = LLPARSE_STATE_RESULT_CR;
-+              else if (byte == '>')
-+                      llp->state = LLPARSE_STATE_PROMPT;
-               else {
-                       llp->state = LLPARSE_STATE_RESULT;
-                       ret = llparse_append(llp, byte);
-@@ -127,6 +132,16 @@
-                       memset(llp->buf, 0, LLPARSE_BUF_SIZE);
-               }
-               break;
-+      case LLPARSE_STATE_PROMPT:
-+              if (byte == ' ')
-+                      llp->state = LLPARSE_STATE_PROMPT_SPC;
-+              else {
-+                      /* this was not a real "> " prompt */
-+                      llparse_append(llp, '>');
-+                      ret = llparse_append(llp, byte);
-+                      llp->state = LLPARSE_STATE_RESULT;
-+              }
-+              break;
-       case LLPARSE_STATE_ERROR:
-               break;
-       }
-@@ -147,6 +162,10 @@
-                       /* FIXME: what to do with return value ? */
-                       llp->cb(llp->buf, llp->cur - llp->buf, llp->ctx);
-               }
-+
-+              /* if a full SMS-style prompt was received, poke the select */
-+              if (llp->state == LLPARSE_STATE_PROMPT_SPC)
-+                      llp->prompt_cb(llp->ctx);
-       }
-       return 0;
-@@ -175,7 +194,7 @@
- {
-       struct gsmd *g = ctx;
-       struct gsmd_atcmd *cmd = NULL;
--      int rc = 0, final = 0;
-+      int rc = 0;
-       DEBUGP("buf=`%s'(%d)\n", buf, len);
-@@ -229,7 +248,6 @@
-                       DEBUGP("error number %lu\n", err_nr);
-                       if (cmd)
-                               cmd->ret = err_nr;
--                      final = 1;
-                       goto final_cb;
-               }
-               if (!strncmp(buf+1, "CMS ERROR", 9)) {
-@@ -239,7 +257,6 @@
-                       DEBUGP("error number %lu\n", err_nr);
-                       if (cmd)
-                               cmd->ret = err_nr;
--                      final = 1;
-                       goto final_cb;
-               }
-@@ -271,7 +288,7 @@
-                       /* it might be a multiline response, so if there's a previous
-                          response, send out mlbuf and start afresh with an empty buffer */
--                      if (g->mlbuf[0] != 0) {
-+                      if (g->mlbuf_len) {
-                               if (!cmd->cb) {
-                                       gsmd_log(GSMD_NOTICE, "command without cb!!!\n");
-                               } else {
-@@ -279,8 +296,8 @@
-                                       cmd->resp = g->mlbuf;
-                                       rc = cmd->cb(cmd, cmd->ctx, cmd->resp);
-                                       DEBUGP("Clearing mlbuf\n");
--                                      g->mlbuf[0] = 0;
-                               }
-+                              g->mlbuf_len = 0;
-                       }
-                       /* the current buf will be appended to mlbuf below */
-@@ -299,7 +316,6 @@
-                       DEBUGP("unspecified error\n");
-                       if (cmd)
-                               cmd->ret = 4;
--                      final = 1;
-                       goto final_cb;
-               }
-@@ -308,7 +324,6 @@
-                       /* Part of Case 'C' */
-                       if (cmd)
-                               cmd->ret = 0;
--                      final = 1;
-                       goto final_cb;
-               }
-@@ -317,14 +332,12 @@
-               if (!strncmp(buf, "NO CARRIER", 11) ||
-                   ((g->flags & GSMD_FLAG_V0) && buf[0] == '3')) {
-                       /* Part of Case 'D' */
--                      final = 1;
-                       goto final_cb;
-               }
-               if (!strncmp(buf, "BUSY", 4) ||
-                   ((g->flags & GSMD_FLAG_V0) && buf[0] == '7')) {
-                       /* Part of Case 'D' */
--                      final = 1;
-                       goto final_cb;
-               }
-       }
-@@ -332,21 +345,13 @@
-       /* we reach here, if we are at an information response that needs to be
-        * passed on */
--      if (g->mlbuf[0] == 0) {
--              DEBUGP("Filling mlbuf\n");
--              strncat(g->mlbuf, buf, MLPARSE_BUF_SIZE-1);
--      } else {
--              DEBUGP("Appending buf to mlbuf\n");
--              g->mlbuf_len = strlen(g->mlbuf);
--              if (g->mlbuf_len+1 < MLPARSE_BUF_SIZE) {
--                      g->mlbuf[g->mlbuf_len] = '\n';
--                      g->mlbuf[g->mlbuf_len+1] = '\0';
--                      strncat(g->mlbuf, buf, MLPARSE_BUF_SIZE-g->mlbuf_len-2);
--              } else {
--                      DEBUGP("response too big for mlbuf!!!\n");
--                      return -EFBIG;
--              }
--      }
-+      if (g->mlbuf_len)
-+              g->mlbuf[g->mlbuf_len ++] = '\n';
-+      DEBUGP("Appending buf to mlbuf\n");
-+      if (len > MLPARSE_BUF_SIZE - g->mlbuf_len)
-+              len = MLPARSE_BUF_SIZE - g->mlbuf_len;
-+      memcpy(g->mlbuf + g->mlbuf_len, buf, len);
-+      g->mlbuf_len += len;
-       return 0;
- final_cb:
-@@ -363,13 +368,16 @@
-       } else {
-               DEBUGP("Calling final cmd->cb()\n");
-               /* send final result code if there is no information response in mlbuf */
--              if (g->mlbuf[0] == 0)
--                      cmd->resp = buf;
--              else
-+              if (g->mlbuf_len) {
-                       cmd->resp = g->mlbuf;
-+                      g->mlbuf[g->mlbuf_len] = 0;
-+                      gsmd_log(GSMD_NOTICE,
-+                                      "the text discarded is %s\n", buf);
-+              } else
-+                      cmd->resp = buf;
-               rc = cmd->cb(cmd, cmd->ctx, cmd->resp);
-               DEBUGP("Clearing mlbuf\n");
--              g->mlbuf[0] = 0;
-+              g->mlbuf_len = 0;
-       }
-       /* remove from list of currently executing cmds */
-@@ -382,7 +390,15 @@
-               g->gfd_uart.when |= GSMD_FD_WRITE;
-       return rc;
--}     
-+}
-+
-+/* called when the modem asked for a new line of a multiline atcmd */
-+static int atcmd_prompt(void *data)
-+{
-+      struct gsmd *g = data;
-+
-+      g->gfd_uart.when |= GSMD_FD_WRITE;
-+}
- /* callback to be called if [virtual] UART has some data for us */
- static int atcmd_select_cb(int fd, unsigned int what, void *data)
-@@ -390,6 +406,7 @@
-       int len, rc;
-       static char rxbuf[1024];
-       struct gsmd *g = data;
-+      char *cr;
-       if (what & GSMD_FD_READ) {
-               memset(rxbuf, 0, sizeof(rxbuf));
-@@ -413,8 +430,12 @@
-       if ((what & GSMD_FD_WRITE) && g->interpreter_ready) {
-               struct gsmd_atcmd *pos, *pos2;
-               llist_for_each_entry_safe(pos, pos2, &g->pending_atcmds, list) {
--                      len = strlen(pos->buf);
--                      rc = write(fd, pos->buf, strlen(pos->buf));
-+                      cr = strchr(pos->cur, '\n');
-+                      if (cr)
-+                              len = cr - pos->cur;
-+                      else
-+                              len = pos->buflen;
-+                      rc = write(fd, pos->cur, len);
-                       if (rc == 0) {
-                               gsmd_log(GSMD_ERROR, "write returns 0, aborting\n");
-                               break;
-@@ -423,27 +444,32 @@
-                                       fd, rc);
-                               return rc;
-                       }
--                      if (rc < len) {
--                              gsmd_log(GSMD_FATAL, "short write!!! FIXME!\n");
--                              exit(3);
--                      }
-+                      if (cr && rc == len)
-+                              rc ++;  /* Skip the \n */
-+                      pos->buflen -= rc;
-+                      pos->cur += rc;
-                       write(fd, "\r", 1);
--                      /* success: remove from global list of to-be-sent atcmds */
--                      llist_del(&pos->list);
--                      /* append to global list of executing atcmds */
--                      llist_add_tail(&pos->list, &g->busy_atcmds);
-+
-+                      if (!pos->buflen) {
-+                              /* success: remove from global list of
-+                               * to-be-sent atcmds */
-+                              llist_del(&pos->list);
-+                              /* append to global list of executing atcmds */
-+                              llist_add_tail(&pos->list, &g->busy_atcmds);
-                               /* we only send one cmd at the moment */
--                              g->gfd_uart.when &= ~GSMD_FD_WRITE;
-                               break;
-+                      } else {
-+                              /* The write was short or the atcmd has more
-+                               * lines to send after a "> ".  */
-+                              if (!(rc < len))
-+                                      break;
-+                      }
-               }
--      }
--#if 0
--      if (llist_empty(&g->pending_atcmds))
-+              /* Either pending_atcmds is empty or a command has to wait */
-               g->gfd_uart.when &= ~GSMD_FD_WRITE;
--#endif
--              
-+      }
-       return 0;
- }
-@@ -454,10 +480,10 @@
- {
-       int buflen = strlen(cmd);
-       struct gsmd_atcmd *atcmd;
--      
-+
-       if (rlen > buflen)
-               buflen = rlen;
--      
-+
-       atcmd = talloc_size(__atcmd_ctx, sizeof(*atcmd)+ buflen);
-       if (!atcmd)
-               return NULL;
-@@ -468,6 +494,7 @@
-       atcmd->ret = -255;
-       atcmd->buflen = buflen;
-       atcmd->buf[buflen-1] = '\0';
-+      atcmd->cur = atcmd->buf;
-       atcmd->cb = cb;
-       atcmd->resp = NULL;
-       strncpy(atcmd->buf, cmd, buflen-1);
-@@ -480,8 +507,9 @@
- {
-       DEBUGP("submitting command `%s'\n", cmd->buf);
-+      if (llist_empty(&g->pending_atcmds))
-+              g->gfd_uart.when |= GSMD_FD_WRITE;
-       llist_add_tail(&cmd->list, &g->pending_atcmds);
--      g->gfd_uart.when |= GSMD_FD_WRITE;
-       return 0;
- }
-@@ -517,9 +545,9 @@
-       g->llp.cur = g->llp.buf;
-       g->llp.len = sizeof(g->llp.buf);
-       g->llp.cb = &ml_parse;
-+      g->llp.prompt_cb = &atcmd_prompt;
-       g->llp.ctx = g;
-       g->llp.flags = LGSM_ATCMD_F_EXTENDED;
-       return gsmd_register_fd(&g->gfd_uart);
--}     
--
-+}
-Index: gsm/src/gsmd/sms_cb.c
-===================================================================
---- gsm.orig/src/gsmd/sms_cb.c 2007-07-31 13:58:37.000000000 +0200
-+++ gsm/src/gsmd/sms_cb.c      2007-07-31 14:23:32.000000000 +0200
-@@ -91,9 +91,6 @@
-       if (!ucmd)
-               return -ENOMEM;
--
--      
--      
-       ucmd->hdr.version = GSMD_PROTO_VERSION;
-       ucmd->hdr.msg_type = GSMD_MSG_SMS;
-       ucmd->hdr.msg_subtype = GSMD_SMS_GETMSG_STORAGE;
-@@ -188,14 +185,26 @@
- int sms_cb_init(struct gsmd *gsmd)
- {
-       struct gsmd_atcmd *atcmd;
-+      char buffer[10];
-       atcmd = atcmd_fill("AT+CSMS=0", NULL, gu, 0);
-       if (!atcmd)
-               return -ENOMEM;
-       atcmd_submit(gsmd, atcmd);
--      /* Switch into "text mode" (Section 3.2.3) */
--      atcdm = atcmd_fill("AT+CMGF=1", 9, &sms_cb_init_cb, gu, 0);
-+      /* If text mode, set the encoding */
-+      if (gu->gsmd->flags & GSMD_FLAG_SMS_FMT) {
-+              atcmd = atcmd_fill("AT+CSCS=\"IRA\"", 13, NULL, gu, 0);
-+              if (!atcmd)
-+                      return -ENOMEM;
-+              atcmd_submit(gsmd, atcmd);
-+      }
-+
-+      /* Switch into desired mode (Section 3.2.3) */
-+      snprintf(buffer, sizeof(buffer), "AT+CMGF=%i",
-+                      (gu->gsmd->flags & GSMD_FLAG_SMS_FMT) ?
-+                      GSMD_SMS_FMT_TEXT : GSMD_SMS_FMT_PDU);
-+      atcmd = atcmd_fill(buffer, strlen(buffer), &sms_cb_init_cb, gu, 0);
-       if (!atcmd)
-               return -ENOMEM;
-Index: gsm/src/gsmd/usock.c
-===================================================================
---- gsm.orig/src/gsmd/usock.c  2007-07-31 13:58:37.000000000 +0200
-+++ gsm/src/gsmd/usock.c       2007-07-31 14:23:32.000000000 +0200
-@@ -75,7 +75,7 @@
-       ucmd->hdr.version = GSMD_PROTO_VERSION;
-       ucmd->hdr.msg_type = GSMD_MSG_PASSTHROUGH;
-       ucmd->hdr.msg_subtype = GSMD_PASSTHROUGH_RESP;
--      ucmd->hdr.len = strlen(resp)+1;
-+      ucmd->hdr.len = rlen;
-       ucmd->hdr.id = cmd->id;
-       memcpy(ucmd->buf, resp, ucmd->hdr.len);
-@@ -100,7 +100,7 @@
- static int usock_rcv_event(struct gsmd_user *gu, struct gsmd_msg_hdr *gph, int len)
- {
--      u_int32_t *evtmask = (u_int32_t *) ((char *)gph + sizeof(*gph), gph->id);
-+      u_int32_t *evtmask = (u_int32_t *) ((char *)gph + sizeof(*gph));
-       if (len < sizeof(*gph) + sizeof(u_int32_t))
-               return -EINVAL;
-@@ -471,18 +471,15 @@
- static int sms_send_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp)
- {
--      struct gsmd_user *gu = ctx;     
-+      struct gsmd_user *gu = (struct gsmd_user *) ctx;
-       struct gsmd_ucmd *ucmd; 
--      
--      ucmd = gsmd_ucmd_fill(strlen(resp)+1, GSMD_MSG_SMS,
--                            GSMD_SMS_SEND, 0);
-+
-+      ucmd = gsmd_ucmd_fill(strlen(resp) + 1,
-+                      GSMD_MSG_SMS, GSMD_SMS_SEND, cmd->id);
-       if (!ucmd)
-               return -ENOMEM;
--      
-       strcpy(ucmd->buf, resp);
--
-       usock_cmd_enqueue(ucmd, gu);
--
-       return 0;
- }
-@@ -520,34 +517,142 @@
-       return 0;
- }
-+int packing_7bit_character(char *src, char *dest)
-+{
-+      int i,j = 0;
-+      unsigned char ch1, ch2;
-+      char tmp[2];
-+      int shift = 0;
-+
-+      *dest = '\0';
-+
-+      for ( i=0; i<strlen(src); i++ ) {
-+
-+              ch1 = src[i] & 0x7F;
-+              ch1 = ch1 >> shift;
-+              ch2 = src[(i+1)] & 0x7F;
-+              ch2 = ch2 << (7-shift);
-+
-+              ch1 = ch1 | ch2;
-+
-+              j = strlen(dest);
-+              sprintf(tmp, "%X", (ch1 >> 4));
-+              dest[j++] = tmp[0];
-+              sprintf(tmp, "%X", (ch1 & 0x0F));
-+              dest[j++] = tmp[0];
-+              dest[j++] = '\0';
-+
-+              shift++;
-+
-+              if ( 7 == shift ) {
-+                      shift = 0;
-+                      i++;
-+              }
-+      }
-+
-+      return 0;
-+}
-+
-+/* Refer to GSM 03.40 subclause 9.2.3.3, for SMS-SUBMIT */
-+static int usock_pdu_make_smssubmit(char *dest, struct gsmd_sms_send *src)
-+{
-+      u_int8_t header[10 + GSMD_ADDR_MAXLEN];
-+      int pos = 0, i, coding7bit = 1;
-+
-+      /* (Should be optional but some modems require it) SMSC Length octet
-+       * is prepended.  If omitted or zero, use SMSC stored in the phone.  */
-+      header[pos ++] = 0x00;
-+
-+      header[pos ++] =
-+              GSMD_SMS_TP_MTI_SUBMIT |
-+              (0 << 2) |              /* Reject Duplicates: 0 */
-+              GSMD_SMS_TP_VPF_NOT_PRESENT |
-+              GSMD_SMS_TP_SRR_NOT_REQUEST |
-+              GSMD_SMS_TP_UDHI_NO_HEADER |
-+              GSMD_SMS_TP_RP_NOT_SET;
-+
-+      /* TP-Message-Reference - 00 lets the phone set the number itself */
-+      header[pos ++] = 0x00;
-+
-+      header[pos ++] = strlen(src->addr.number);
-+      header[pos ++] = src->addr.type;
-+      for (i = 0; src->addr.number[i]; i ++) {
-+              header[pos] = src->addr.number[i ++] - '0';
-+              if (src->addr.number[i])
-+                      header[pos ++] |= (src->addr.number[i] - '0') << 4;
-+              else {
-+                      header[pos ++] |= 0xf0;
-+                      break;
-+              }
-+      }
-+
-+      /* TP-Protocol-Identifier - 00 means implicit */
-+      header[pos ++] = 0x00;
-+
-+      /* TP-Data-Coding-Scheme - 00 for 7-bit default alphabet */
-+      header[pos ++] = coding7bit ? 0x00 : 0x04;
-+
-+      /* TP-Validity-Period, if present, would go here */
-+
-+      header[pos ++] = src->payload.length;
-+
-+      if (dest) {
-+              for (i = 0; i < pos; i ++) {
-+                      sprintf(dest, "%02X", header[i]);
-+                      dest += 2;
-+              }
-+              if (coding7bit)
-+                      packing_7bit_character(src->payload.data, dest);
-+              else
-+                      for (i = 0; i < src->payload.length; i ++) {
-+                              sprintf(dest, "%02X", src->payload.data[i]);
-+                              dest += 2;
-+                      }
-+      }
-+
-+      if (coding7bit)
-+              return ((src->payload.length * 7 + 7) >> 3) + pos;
-+      else
-+              return src->payload.length + pos;
-+}
-+
-+static const char *gsmd_cmgl_stat[] = {
-+      "REC UNREAD", "REC READ", "STO UNSENT", "STO SENT", "ALL",
-+};
-+
- static int usock_rcv_sms(struct gsmd_user *gu, struct gsmd_msg_hdr *gph, 
-                        int len)
- {
-       /* FIXME: TEXT mode support!!  */
-       struct gsmd_atcmd *cmd = NULL;
-       struct gsmd_sms_delete *gsd;
--      struct gsmd_sms *gs;
-+      struct gsmd_sms_send *gss;
-       struct gsmd_sms_write *gsw;
-       int *stat, *index;
-       int atcmd_len;
-       char buf[1024];
--      
-+
-       switch (gph->msg_subtype) {
-       case GSMD_SMS_LIST:
-               /* FIXME: only support PDU mode!! */
-               if(len < sizeof(*gph) + sizeof(int))
-                       return -EINVAL;
--              stat = (int *) ((void *)gph + sizeof(*gph));    
-+              stat = (int *) ((void *)gph + sizeof(*gph));
-+              if (*stat < 0 || *stat > 4)
-+                      return -EINVAL;
--              sprintf(buf, "%d", *stat);      
--                              
--              atcmd_len = 1 + strlen("AT+CMGL=") + strlen(buf);
--              cmd = atcmd_fill("AT+CMGL=", atcmd_len,
--                               &sms_list_cb, gu, gph->id);
-+              if (gu->gsmd->flags & GSMD_FLAG_SMS_FMT)
-+                      atcmd_len = sprintf(buf, "AT+CMGL=\"%s\"",
-+                                      gsmd_cmgl_stat[*stat]);
-+              else
-+                      atcmd_len = sprintf(buf, "AT+CMGL=%i", *stat);
-+
-+              cmd = atcmd_fill(buf, atcmd_len + 1,
-+                              &sms_list_cb, gu, gph->id);
-               if (!cmd)
-                       return -ENOMEM;
--              sprintf(cmd->buf, "AT+CMGL=%s", buf);
-               break;
-+
-       case GSMD_SMS_READ:
-               /* FIXME: only support PDU mode!! */
-               if(len < sizeof(*gph) + sizeof(int))
-@@ -563,6 +668,34 @@
-                       return -ENOMEM;
-               sprintf(cmd->buf, "AT+CMGR=%s", buf);
-               break;
-+
-+      case GSMD_SMS_SEND:
-+              if (len < sizeof(*gph) + sizeof(*gss))
-+                      return -EINVAL;
-+              gss = (struct gsmd_sms_send *) ((void *) gph + sizeof(*gph));
-+
-+              if (gu->gsmd->flags & GSMD_FLAG_SMS_FMT) {
-+                      atcmd_len = sprintf(buf, "AT+CMGS=\"%s\"\n%.*s",
-+                                      gss->addr.number,
-+                                      gss->payload.length,
-+                                      gss->payload.data);
-+              } else {
-+                      atcmd_len = sprintf(buf, "AT+CMGS=%i\n",
-+                                      usock_pdu_make_smssubmit(NULL,
-+                                              gss) - 1);
-+                      atcmd_len += usock_pdu_make_smssubmit(buf + atcmd_len,
-+                                      gss) * 2;
-+              }
-+              buf[atcmd_len ++] = 26; /* ^Z ends the message */
-+              buf[atcmd_len ++] = 0;
-+
-+              cmd = atcmd_fill(buf, atcmd_len, &sms_send_cb, gu, gph->id);
-+              if (!cmd)
-+                      return -ENOMEM;
-+              break;
-+      case GSMD_SMS_WRITE:
-+              gsmd_log(GSMD_DEBUG, "sms write\n");
-+              break;
- #if 0
-       case GSMD_SMS_SEND:
-               /* FIXME: only support PDU mode!! */
-@@ -610,8 +743,8 @@
-       default:
-               return -EINVAL;
-       }
--              
--      gsmd_log(GSMD_DEBUG, "%s\n", cmd->buf);
-+
-+      gsmd_log(GSMD_DEBUG, "%s\n", cmd ? cmd->buf : 0);
-       if (cmd)
-               return atcmd_submit(gu->gsmd, cmd);
-       else
-@@ -867,7 +1000,7 @@
-       [GSMD_MSG_PIN]          = &usock_rcv_pin,
-       [GSMD_MSG_PHONE]        = &usock_rcv_phone,
-       [GSMD_MSG_NETWORK]      = &usock_rcv_network,
--      [GSMD_MSG_SMS]          = &usock_rcv_sms,       
-+      [GSMD_MSG_SMS]          = &usock_rcv_sms,
-       //[GSMD_MSG_PHONEBOOK]  = &usock_rcv_phonebook,
- };
-Index: gsm/src/gsmd/vendor_ti.c
-===================================================================
---- gsm.orig/src/gsmd/vendor_ti.c      2007-07-31 13:58:37.000000000 +0200
-+++ gsm/src/gsmd/vendor_ti.c   2007-07-31 14:23:32.000000000 +0200
-@@ -277,7 +277,7 @@
- static int ticalypso_initsettings(struct gsmd *g)
- {
--      int rc;
-+      int rc = 0;
-       struct gsmd_atcmd *cmd;
-       /* use +CTZR: to report time zone changes */
-Index: gsm/src/libgsmd/libgsmd_sms.c
-===================================================================
---- gsm.orig/src/libgsmd/libgsmd_sms.c 2007-07-31 13:58:37.000000000 +0200
-+++ gsm/src/libgsmd/libgsmd_sms.c      2007-07-31 14:23:32.000000000 +0200
-@@ -83,19 +83,33 @@
-       return 0;
- }
--int lgsmd_sms_send(struct lgsm_handle *lh, 
--              const struct lgsm_sms *sms)   
-+#ifndef MIN
-+# define MIN(a,b)     (((a) < (b)) ? (a) : (b))
-+#endif
-+
-+int lgsmd_sms_send(struct lgsm_handle *lh,
-+              const struct lgsm_sms *sms)
- {
-       /* FIXME: only support PDU mode */
-       struct gsmd_msg_hdr *gmh;
--      struct gsmd_sms *gs;
-+      struct gsmd_sms_send *gss;
-       int rc;
-       gmh = lgsm_gmh_fill(GSMD_MSG_SMS,
--                      GSMD_SMS_SEND, sizeof(*gs));
-+                      GSMD_SMS_SEND, sizeof(*gss));
-       if (!gmh)
-               return -ENOMEM;
--      gs = (struct gsmd_sms *) gmh->data;
-+      gss = (struct gsmd_sms_send *) gmh->data;
-+
-+      gss->addr.type =
-+              GSMD_TOA_NPI_ISDN |
-+              GSMD_TOA_TON_UNKNOWN |
-+              GSMD_TOA_RESERVED;
-+      strncpy(gss->addr.number, sms->addr, sizeof(gss->addr.number));
-+
-+      gss->payload.length =
-+              MIN(strlen(sms->data), sizeof(gss->payload.data));
-+      memcpy(gss->payload.data, sms->data, gss->payload.length);
-       rc = lgsm_send(lh, gmh);
-       if (rc < gmh->len + sizeof(*gmh)) {
-@@ -108,7 +122,7 @@
-       return 0;
- }
--int lgsmd_sms_write(struct lgsm_handle *lh, 
-+int lgsmd_sms_write(struct lgsm_handle *lh,
-               const struct lgsm_sms_write *sms_write)
- {
-       /* FIXME: only support PDU mode */
diff --git a/packages/gsm/files/tihtc-csq-fix.patch b/packages/gsm/files/tihtc-csq-fix.patch
deleted file mode 100644 (file)
index 3346d85..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-Index: gsm/src/gsmd/vendor_tihtc.c
-===================================================================
---- gsm.orig/src/gsmd/vendor_tihtc.c   2007-06-03 16:26:39.000000000 +0200
-+++ gsm/src/gsmd/vendor_tihtc.c        2007-06-03 16:26:41.000000000 +0200
-@@ -90,6 +90,8 @@
-       struct gsmd_evt_auxdata *aux;
-       struct gsmd_ucmd *ucmd = usock_build_event(GSMD_MSG_EVENT, GSMD_EVT_SIGNAL,
-                                            sizeof(*aux));
-+      static int rssi_table[] = { 0,5,10,15,20,25,99 };
-+      unsigned int i;
-       DEBUGP("entering htccsq_parse param=`%s'\n", param);
-       if (!ucmd)
-@@ -98,9 +100,10 @@
-       aux = (struct gsmd_evt_auxdata *) ucmd->buf;
--      /* FIXME: contains values 1-5, should be mapped to 0-31 somehow? */
--      /* 2 --> 11 */
--      aux->u.signal.sigq.rssi = atoi(buf);
-+      i = atoi(buf);
-+      if (i > 6)
-+              i = 6;
-+      aux->u.signal.sigq.rssi = rssi_table[atoi(buf)];
-       aux->u.signal.sigq.ber = 99;
-       DEBUGP("sending EVT_SIGNAL\n");
diff --git a/packages/gsm/files/universal-wcdma.patch b/packages/gsm/files/universal-wcdma.patch
deleted file mode 100644 (file)
index a162ce2..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-Index: gsm/src/gsmd/vendor_qc.c
-===================================================================
---- gsm.orig/src/gsmd/vendor_qc.c      2007-06-13 20:13:47.000000000 +0200
-+++ gsm/src/gsmd/vendor_qc.c   2007-06-13 20:45:19.000000000 +0200
-@@ -69,8 +69,15 @@
-       return -EIO;
- }
-+static int wcdma_parse(char *buf, int len, const char *param,
-+                   struct gsmd *gsmd)
-+{
-+      return 0;
-+}
-+
- static const struct gsmd_unsolicit qc_unsolicit[] = {
-       { "@HTCCSQ",    &htccsq_parse },        /* Signal Quality */
-+      { "[WCDMA]",    &wcdma_parse },         /* ignore [WCDMA] messages */
-       /* FIXME: parse the below and generate the respective events */
-@@ -97,7 +109,7 @@
- struct gsmd_vendor_plugin gsmd_vendor_plugin = {
-       .name = "Qualcomm msm6250",
--      .ext_chars = "@",
-+      .ext_chars = "@[",
-       .num_unsolicit = ARRAY_SIZE(qc_unsolicit),
-       .unsolicit = qc_unsolicit,
-       .detect = &qc_detect,
index 951be7f..ba7c07a 100644 (file)
@@ -4,17 +4,13 @@ LICENSE = "GPL LGPL"
 SECTION = "libs/gsm"
 PROVIDES += "gsmd"
 PV = "0.1+svn${SRCDATE}"
-PR = "r18"
+PR = "r19"
 
 SRC_URI_OVERRIDES_PACKAGE_ARCH = "1"
 
 SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gsm;proto=http \
            file://gsmd \
-           file://default \
-           file://extreplychars.patch;patch=1 \
-           file://getopt-wait-interpreter-ready.patch;patch=1 \
-           file://tihtc-csq-fix.patch;patch=1 \
-           file://universal-wcdma.patch;patch=1"
+           file://default"
 S = "${WORKDIR}/gsm"
 
 inherit autotools pkgconfig update-rc.d