FreeCalypso > hg > freecalypso-sw
annotate gsm-fw/ccd/pdi.c @ 711:4ee3bc3fc540
dl_state.c compiles
| author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> | 
|---|---|
| date | Fri, 03 Oct 2014 04:41:15 +0000 | 
| parents | 970d6199f2c5 | 
| children | 
| rev | line source | 
|---|---|
| 648 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 1 /* | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 2 +----------------------------------------------------------------------------- | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 3 | Project : | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 4 | Modul : pdi.c | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 5 +----------------------------------------------------------------------------- | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 6 | Copyright 2002 Texas Instruments Berlin, AG | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 7 | All rights reserved. | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 8 | | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 9 | This file is confidential and a trade secret of Texas | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 10 | Instruments Berlin, AG | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 11 | The receipt of or possession of this file does not convey | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 12 | any rights to reproduce or disclose its contents or to | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 13 | manufacture, use, or sell anything it may describe, in | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 14 | whole, or in part, without the specific written consent of | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 15 | Texas Instruments Berlin, AG. | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 16 +----------------------------------------------------------------------------- | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 17 | Purpose : | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 18 +----------------------------------------------------------------------------- | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 19 */ | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 20 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 21 #define PDI_C | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 22 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 23 #include "typedefs.h" | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 24 #include "ccdapi.h" | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 25 #include "ccdtable.h" | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 26 #include "ccddata.h" | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 27 #include <malloc.h> | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 28 #include <memory.h> | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 29 #include <string.h> | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 30 #include "pdi.h" | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 31 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 32 #define GET_PD(m) ((m)->buf[((m)->o_buf)>>3] & 0x0f) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 33 #define GET_TI(m) ((m)->buf[((m)->o_buf)>>3] >> 4) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 34 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 35 /* Constants borrowed from grr.h */ | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 36 #define CTRL_BLK_NO_OPT 1 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 37 #define CTRL_BLK_OPT 2 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 38 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 39 static T_PDI_DECODEINFO* g_DummyDecodeInfo = NULL; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 40 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 41 static T_PDI_DECODEINFO m_def_dinfo[]={ | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 42 /* type */ /* attrib */ /* prim */ /* entity */ /* mt */ /* pdi_prepare_ccdmsg */ /* primmbr */ | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 43 {PDI_DECODETYPE_L3PDU_N, "sdu", "PH_*", "", 0xff, NULL, NULL}, | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 44 {PDI_DECODETYPE_L3PDU_N, "sdu", "MPH_*", "", 0xff, NULL, NULL}, | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 45 {PDI_DECODETYPE_L3PDU_N, "sdu", "DL_*", "", 0xff, NULL, NULL}, | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 46 {PDI_DECODETYPE_L3PDU, "sdu", "XX_TAP*", "", 0xff, NULL, NULL}, | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 47 {PDI_DECODETYPE_NOPD, "sdu", "XX_*", "XX", 0xff, NULL, NULL}, | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 48 {PDI_DECODETYPE_L3PDU, "sdu", "*", "", 0xff, NULL, NULL} | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 49 }; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 50 #define DEF_DINFO_COUNT (sizeof(m_def_dinfo) / sizeof(*m_def_dinfo)) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 51 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 52 static UBYTE pdi_readmtype (T_MSGBUF* msg, UBYTE len) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 53 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 54 UBYTE mt = msg->buf[msg->o_buf>>3] >> (8-len); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 55 msg->l_buf -= len; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 56 msg->o_buf += len; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 57 return mt; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 58 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 59 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 60 #define PDI_MBUFLEN 1024 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 61 static struct | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 62 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 63 U16 l_buf; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 64 U16 o_buf; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 65 char buf[PDI_MBUFLEN]; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 66 } pdi_msgbuf; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 67 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 68 static int pdi_rmac_hdr (T_PDI_CCDMSG* ccdmsg, char* evalue, int evlen) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 69 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 70 char* ptr_blk; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 71 UBYTE payload, rrbp, sp; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 72 evalue++; /* Assume it is an array and skip length delivered from ccdedit */ | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 73 memcpy (pdi_msgbuf.buf, evalue, evlen > PDI_MBUFLEN ? PDI_MBUFLEN : evlen); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 74 ptr_blk = evalue; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 75 pdi_msgbuf.l_buf = evlen * 8; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 76 pdi_msgbuf.o_buf = 0; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 77 ccdmsg->mbuf = (T_MSGBUF*) &pdi_msgbuf; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 78 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 79 /* the following is borrowed from grlc_gfff.c */ | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 80 payload = (ptr_blk[0] & 0xC0) >> 6; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 81 rrbp = (ptr_blk[0] & 0x30) >> 4; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 82 sp = (ptr_blk[0] & 0x08) >> 3; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 83 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 84 if (payload == CTRL_BLK_NO_OPT) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 85 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 86 /* msg starts at byte #2 */ | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 87 pdi_msgbuf.l_buf -= 8; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 88 pdi_msgbuf.o_buf += 8; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 89 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 90 else if ((payload == CTRL_BLK_OPT) && | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 91 !(ptr_blk[1] & 0x01) && | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 92 !(ptr_blk[1] & 0x80) && | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 93 (ptr_blk[1] & 0x02)) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 94 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 95 /* msg starts at byte #3 */ | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 96 pdi_msgbuf.l_buf -= 16; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 97 pdi_msgbuf.o_buf += 16; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 98 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 99 else if ((payload == CTRL_BLK_OPT) && | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 100 (ptr_blk[1] & 0x01) && | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 101 !(ptr_blk[1] & 0x80) && | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 102 (ptr_blk[1] & 0x02)) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 103 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 104 /* msg starts at byte #4 */ | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 105 pdi_msgbuf.l_buf -= 24; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 106 pdi_msgbuf.o_buf += 24; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 107 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 108 else | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 109 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 110 return PDI_NONE; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 111 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 112 return PDI_CCDMSG; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 113 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 114 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 115 T_PDI_CONTEXT* CCDDATA_PREF(pdi_createDefContext)() | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 116 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 117 const T_PDI_DECODEINFO* dinfo; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 118 int dinfo_count=ccddata_get_pdi_dinfo(&dinfo); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 119 if (dinfo_count==0) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 120 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 121 dinfo_count=DEF_DINFO_COUNT; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 122 dinfo=m_def_dinfo; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 123 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 124 return CCDDATA_PREF(pdi_createContext)(dinfo,dinfo_count); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 125 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 126 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 127 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 128 T_PDI_CONTEXT* CCDDATA_PREF(pdi_createContext)(const T_PDI_DECODEINFO *dinfo, unsigned int dicount) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 129 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 130 int i; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 131 USHORT sap, opc, dir, di; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 132 USHORT pmtx; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 133 T_PDI_DECODEINFO* decodeInfo[1024]; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 134 int decodeInfoCount; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 135 int len; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 136 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 137 T_PDI_CONTEXT *context; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 138 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 139 if (context = (T_PDI_CONTEXT*)malloc(sizeof(T_PDI_CONTEXT))) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 140 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 141 // copy dinfo | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 142 if (!(context->dinfo = (T_PDI_DECODEINFO*)malloc(sizeof(T_PDI_DECODEINFO)*dicount))) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 143 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 144 free(context); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 145 return NULL; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 146 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 147 memcpy(context->dinfo, dinfo, sizeof(T_PDI_DECODEINFO)*dicount); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 148 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 149 // PD -> CCDENT | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 150 memset(context->PdEntityTable, -1, sizeof(T_PDI_PdEntityTable)); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 151 context->PdEntityTable[PD_XX] = ccddata_get_ccdent("XX"); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 152 context->PdEntityTable[PD_CC] = ccddata_get_ccdent("CC"); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 153 context->PdEntityTable[PD_MM] = ccddata_get_ccdent("MM"); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 154 context->PdEntityTable[PD_RR] = ccddata_get_ccdent("RR"); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 155 context->PdEntityTable[PD_GMM] = ccddata_get_ccdent("GMM"); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 156 context->PdEntityTable[PD_SMS] = ccddata_get_ccdent("SMS"); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 157 context->PdEntityTable[PD_SS] = ccddata_get_ccdent("SS"); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 158 context->PdEntityTable[PD_SM] = ccddata_get_ccdent("SM"); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 159 context->PdEntityTable[PD_TST] = ccddata_get_ccdent("TST"); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 160 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 161 /* initialize mi_length */ | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 162 context->mi_length = ccddata_get_mi_length (); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 163 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 164 // count pcomp | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 165 i = 0; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 166 while (ccddata_get_pcomp((USHORT)i)->name != NULL) i++; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 167 context->PrimDecodeInfo = (T_PDI_DECODEINFO***)malloc(i*sizeof(T_PDI_DECODEINFO**)); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 168 memset(context->PrimDecodeInfo, 0, i*sizeof(int*)); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 169 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 170 // search all primitives | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 171 for (sap = 0; sap <= ccddata_get_max_sap_num(); sap++) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 172 for (opc = 0; opc <= (USHORT)ccddata_get_max_primitive_id(); opc++) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 173 for (dir = 0; dir <= 1; dir++) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 174 if ((pmtx = ccddata_get_pmtx(sap, opc, dir)) != NO_REF) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 175 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 176 const char* pname; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 177 pname = ccddata_get_pcomp(pmtx)->name; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 178 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 179 decodeInfoCount = 0; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 180 for (di = 0; di < dicount; di++) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 181 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 182 int wildcard; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 183 len = strlen(context->dinfo[di].prim); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 184 if (context->dinfo[di].prim[len-1] == '*') | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 185 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 186 wildcard = 1; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 187 len--; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 188 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 189 else | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 190 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 191 wildcard = 0; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 192 len = strlen(pname); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 193 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 194 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 195 if (wildcard) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 196 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 197 if (!strncmp(context->dinfo[di].prim, pname, len)) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 198 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 199 decodeInfo[decodeInfoCount] = &context->dinfo[di]; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 200 decodeInfoCount++; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 201 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 202 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 203 else | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 204 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 205 if (!strcmp(context->dinfo[di].prim, pname)) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 206 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 207 decodeInfo[decodeInfoCount] = &context->dinfo[di]; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 208 decodeInfoCount++; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 209 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 210 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 211 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 212 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 213 // store decodeInfo for this primitive | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 214 if (decodeInfoCount != 0) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 215 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 216 decodeInfo[decodeInfoCount] = g_DummyDecodeInfo; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 217 decodeInfoCount++; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 218 context->PrimDecodeInfo[pmtx] = (T_PDI_DECODEINFO**) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 219 malloc(decodeInfoCount*sizeof(T_PDI_DECODEINFO*)); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 220 if (context->PrimDecodeInfo+pmtx) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 221 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 222 memcpy(context->PrimDecodeInfo[pmtx], &decodeInfo, | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 223 decodeInfoCount*sizeof(T_PDI_DECODEINFO*)); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 224 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 225 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 226 else | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 227 context->PrimDecodeInfo[pmtx] = &g_DummyDecodeInfo; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 228 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 229 else | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 230 context->PrimDecodeInfo[pmtx] = &g_DummyDecodeInfo; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 231 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 232 } // endif (pmtx != NO_REF) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 233 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 234 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 235 return context; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 236 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 237 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 238 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 239 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 240 void CCDDATA_PREF(pdi_destroyContext)(T_PDI_CONTEXT *context) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 241 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 242 int i = 0; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 243 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 244 if (context==NULL) return; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 245 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 246 while (ccddata_get_pcomp((USHORT)i)->name != NULL) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 247 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 248 if ((context->PrimDecodeInfo[i] != NULL) && | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 249 (context->PrimDecodeInfo[i][0] != NULL)) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 250 free(context->PrimDecodeInfo[i]); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 251 i++; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 252 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 253 if (context->PrimDecodeInfo != NULL) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 254 free(context->PrimDecodeInfo); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 255 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 256 free(context->dinfo); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 257 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 258 free(context); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 259 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 260 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 261 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 262 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 263 void CCDDATA_PREF(pdi_startPrim)(T_PDI_CONTEXT *context, ULONG opc) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 264 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 265 context->sapi = 0; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 266 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 267 if (opc & 0x80000000) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 268 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 269 context->sap = (USHORT) (opc & 0x3fff); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 270 context->opc = (USHORT) ((opc >> 16) & 0xff); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 271 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 272 else | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 273 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 274 context->sap = (USHORT) (((opc & 0x3f00)>>8) & 0xff); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 275 context->opc = (USHORT) (opc & 0xff); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 276 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 277 context->dir = (UBYTE) (((opc & 0x4000)>>14) & 0x01); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 278 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 279 context->pmtx = ccddata_get_pmtx(context->sap, context->opc, context->dir); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 280 context->mtypenum = 0; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 281 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 282 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 283 void CCDDATA_PREF(pdi_getDecodeInfo)(T_PDI_CONTEXT *context, const char *ename, | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 284 char *evalue, int evlen, T_PDI *decinfo) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 285 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 286 int i=0; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 287 T_PDI_DECODEINFO* di; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 288 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 289 decinfo->decodetype = PDI_NONE; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 290 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 291 while (di = context->PrimDecodeInfo[context->pmtx][i++]) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 292 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 293 if ((di->type == PDI_DECODETYPE_SAPI) && (strcmp(ename, "sapi") == 0)) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 294 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 295 context->sapi = evalue[0]; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 296 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 297 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 298 if (!strcmp(ename, di->attrib)) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 299 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 300 decinfo->pdi.ccdmsg.msg_type = 0xff; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 301 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 302 if (di->pdi_prepare_ccdmsg) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 303 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 304 decinfo->decodetype = (*di->pdi_prepare_ccdmsg) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 305 (&decinfo->pdi.ccdmsg, context->mtypeval, | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 306 context->mtypenum); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 307 if (decinfo->decodetype == PDI_NONE) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 308 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 309 continue; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 310 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 311 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 312 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 313 switch (di->type) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 314 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 315 case PDI_DECODETYPE_AIM: | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 316 case PDI_DECODETYPE_AIM_N: | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 317 case PDI_DECODETYPE_AIM_CHECK: | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 318 case PDI_DECODETYPE_AIM_N_CHECK: | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 319 decinfo->decodetype = PDI_CCDMSG; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 320 memcpy (pdi_msgbuf.buf, evalue, | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 321 evlen > PDI_MBUFLEN ? PDI_MBUFLEN : evlen); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 322 pdi_msgbuf.l_buf = evlen * 8; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 323 pdi_msgbuf.o_buf = 0; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 324 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 325 /* first byte: don't care */ | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 326 pdi_msgbuf.l_buf -= 8; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 327 pdi_msgbuf.o_buf += 8; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 328 decinfo->pdi.ccdmsg.mbuf = (T_MSGBUF*) &pdi_msgbuf; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 329 decinfo->pdi.ccdmsg.pd = GET_PD (decinfo->pdi.ccdmsg.mbuf); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 330 if (strcmp (di->entity, | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 331 CCDDATA_PREF(pdi_pd2name)(decinfo->pdi.ccdmsg.pd))) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 332 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 333 /* pd does not match the configured entity */ | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 334 decinfo->decodetype = PDI_CCDMSG; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 335 continue; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 336 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 337 else | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 338 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 339 pdi_msgbuf.l_buf -= 8; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 340 pdi_msgbuf.o_buf += 8; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 341 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 342 //decinfo->pdi.ccdmsg.ti = GET_TI (decinfo->pdi.ccdmsg.mbuf); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 343 decinfo->pdi.ccdmsg.dir = (di->type == PDI_DECODETYPE_AIM) || | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 344 (di->type == PDI_DECODETYPE_AIM_CHECK) ? | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 345 context->dir : (~context->dir)&1; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 346 decinfo->pdi.ccdmsg.entity = (UBYTE)ccddata_get_ccdent(di->entity); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 347 decinfo->pdi.ccdmsg.msg_type = pdi_readmtype ( | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 348 decinfo->pdi.ccdmsg.mbuf, | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 349 context->mi_length[decinfo->pdi.ccdmsg.entity]); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 350 break; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 351 case PDI_DECODETYPE_L3PDU_N: | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 352 case PDI_DECODETYPE_L3PDU: | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 353 decinfo->decodetype = PDI_CCDMSG; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 354 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 355 decinfo->pdi.ccdmsg.pd = GET_PD ((T_MSGBUF*) evalue); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 356 decinfo->pdi.ccdmsg.ti = GET_TI ((T_MSGBUF*) evalue); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 357 decinfo->pdi.ccdmsg.dir = (di->type == PDI_DECODETYPE_L3PDU) ? | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 358 context->dir : (~context->dir)&1; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 359 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 360 decinfo->pdi.ccdmsg.mbuf = (T_MSGBUF*)evalue; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 361 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 362 if (CCDDATA_PREF(pdi_getEntityByPD)(context, decinfo->pdi.ccdmsg.pd)==-1) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 363 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 364 decinfo->decodetype = PDI_NONE; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 365 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 366 else | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 367 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 368 decinfo->pdi.ccdmsg.entity = (UBYTE)CCDDATA_PREF(pdi_getEntityByPD)(context, decinfo->pdi.ccdmsg.pd); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 369 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 370 ((T_MSGBUF*)evalue)->o_buf += 8; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 371 ((T_MSGBUF*)evalue)->l_buf -= 8; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 372 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 373 decinfo->pdi.ccdmsg.msg_type = pdi_readmtype ((T_MSGBUF*)evalue, | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 374 context->mi_length[decinfo->pdi.ccdmsg.entity]); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 375 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 376 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 377 /* remove SSN bit */ | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 378 if (!strcmp ("DL_DATA_REQ", ccddata_get_pcomp (context->pmtx)->name)) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 379 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 380 if (decinfo->pdi.ccdmsg.pd == PD_CC || | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 381 decinfo->pdi.ccdmsg.pd == PD_MM || | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 382 decinfo->pdi.ccdmsg.pd == PD_SS) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 383 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 384 decinfo->pdi.ccdmsg.msg_type &= ~0x40; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 385 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 386 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 387 break; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 388 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 389 case PDI_DECODETYPE_NOPD: | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 390 case PDI_DECODETYPE_NOPD_N: | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 391 case PDI_DECODETYPE_RR_SHORT: | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 392 decinfo->decodetype = PDI_CCDMSG; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 393 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 394 decinfo->pdi.ccdmsg.pd = 0; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 395 decinfo->pdi.ccdmsg.ti = 0; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 396 decinfo->pdi.ccdmsg.dir = (di->type == PDI_DECODETYPE_NOPD) ? | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 397 context->dir : (~context->dir)&1; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 398 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 399 decinfo->pdi.ccdmsg.mbuf = (T_MSGBUF*)evalue; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 400 decinfo->pdi.ccdmsg.entity = (UBYTE)ccddata_get_ccdent(di->entity); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 401 decinfo->pdi.ccdmsg.msg_type = pdi_readmtype ((T_MSGBUF*)evalue, | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 402 context->mi_length[decinfo->pdi.ccdmsg.entity]); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 403 break; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 404 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 405 case PDI_DECODETYPE_NOPD_NOTYPE: | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 406 case PDI_DECODETYPE_NOPD_NOTYPE_N: | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 407 decinfo->decodetype = PDI_CCDMSG; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 408 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 409 decinfo->pdi.ccdmsg.pd = 0; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 410 decinfo->pdi.ccdmsg.ti = 0; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 411 decinfo->pdi.ccdmsg.dir = (di->type == PDI_DECODETYPE_NOPD_NOTYPE) ? | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 412 context->dir : (~context->dir)&1; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 413 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 414 decinfo->pdi.ccdmsg.mbuf = (T_MSGBUF*)evalue; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 415 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 416 if (decinfo->pdi.ccdmsg.msg_type == 0xff) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 417 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 418 decinfo->pdi.ccdmsg.msg_type = di->msg_type; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 419 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 420 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 421 decinfo->pdi.ccdmsg.entity = (UBYTE)ccddata_get_ccdent(di->entity); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 422 break; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 423 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 424 case PDI_DECODETYPE_MAC_H: | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 425 case PDI_DECODETYPE_MAC_H_N: | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 426 case PDI_DECODETYPE_MAC_H_CHECK: | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 427 case PDI_DECODETYPE_MAC_H_N_CHECK: | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 428 if ((decinfo->decodetype = pdi_rmac_hdr (&decinfo->pdi.ccdmsg, | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 429 evalue, evlen)) == PDI_CCDMSG) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 430 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 431 decinfo->pdi.ccdmsg.pd = 0; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 432 decinfo->pdi.ccdmsg.ti = 0; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 433 decinfo->pdi.ccdmsg.dir = ((di->type == PDI_DECODETYPE_MAC_H) || | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 434 (di->type == PDI_DECODETYPE_MAC_H_CHECK)) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 435 ? context->dir : (~context->dir)&1; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 436 decinfo->pdi.ccdmsg.entity = (UBYTE)ccddata_get_ccdent(di->entity); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 437 decinfo->pdi.ccdmsg.msg_type = | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 438 pdi_readmtype (decinfo->pdi.ccdmsg.mbuf, | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 439 context->mi_length[decinfo->pdi.ccdmsg.entity]); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 440 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 441 break; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 442 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 443 case PDI_DECODETYPE_SAPI: | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 444 decinfo->decodetype = PDI_NONE; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 445 if (context->sapi == 1) // only sapi1 (GMM) has data for ccd | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 446 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 447 decinfo->decodetype = PDI_CCDMSG; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 448 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 449 decinfo->pdi.ccdmsg.pd = GET_PD ((T_MSGBUF*) evalue); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 450 decinfo->pdi.ccdmsg.ti = GET_TI ((T_MSGBUF*) evalue); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 451 decinfo->pdi.ccdmsg.dir = context->dir; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 452 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 453 /* !!! TBD !!! */ | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 454 /* find msg_type*/ | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 455 /* !!! TBD !!! */ | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 456 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 457 decinfo->pdi.ccdmsg.mbuf = (T_MSGBUF*)evalue; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 458 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 459 ((T_MSGBUF*)evalue)->o_buf += 8; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 460 ((T_MSGBUF*)evalue)->l_buf -= 8; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 461 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 462 if (CCDDATA_PREF(pdi_getEntityByPD)(context, decinfo->pdi.ccdmsg.pd)==-1) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 463 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 464 decinfo->decodetype = PDI_NONE; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 465 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 466 else | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 467 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 468 decinfo->pdi.ccdmsg.entity = (UBYTE)CCDDATA_PREF(pdi_getEntityByPD)(context, decinfo->pdi.ccdmsg.pd); | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 469 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 470 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 471 break; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 472 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 473 default: | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 474 decinfo->decodetype = PDI_NONE; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 475 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 476 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 477 break; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 478 } /* endif (strcmp) */ | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 479 else | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 480 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 481 if (evlen > 4 || evlen < 0 || evlen == 3) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 482 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 483 /* don't check prim members for non base types */ | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 484 continue; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 485 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 486 /* check for prim members later needed for finding out msg type */ | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 487 if (di->primmbr) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 488 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 489 int i; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 490 for (i=0; di->primmbr[i] && context->mtypenum<PDI_MAXPMEMFORMTYPE; i++) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 491 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 492 if (!strcmp(ename, di->primmbr[i])) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 493 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 494 switch (evlen) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 495 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 496 case 1: | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 497 context->mtypeval[context->mtypenum++] = | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 498 (ULONG) * (UBYTE*) evalue; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 499 break; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 500 case 2: | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 501 context->mtypeval[context->mtypenum++] = | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 502 (ULONG) * (USHORT*) evalue; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 503 break; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 504 case 4: | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 505 default: | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 506 context->mtypeval[context->mtypenum++] = * (ULONG*) evalue; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 507 break; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 508 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 509 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 510 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 511 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 512 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 513 } /* endwhile */ | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 514 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 515 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 516 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 517 short CCDDATA_PREF(pdi_getEntityByPD)(const T_PDI_CONTEXT *context, unsigned char pd) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 518 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 519 if ((pd > 16) || (context->PdEntityTable == NULL)) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 520 return -1; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 521 else | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 522 return context->PdEntityTable[pd]; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 523 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 524 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 525 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 526 const char* CCDDATA_PREF(pdi_pd2name)(unsigned char pd) | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 527 { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 528 switch (pd) { | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 529 case PD_XX: return "XX"; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 530 case PD_CC: return "CC"; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 531 case PD_MM: return "MM"; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 532 case PD_RR: return "RR"; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 533 case PD_GMM: return "GMM"; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 534 case PD_SMS: return "SMS"; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 535 case PD_SS: return "SS"; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 536 case PD_SM: return "SM"; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 537 case PD_TST: return "TST"; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 538 | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 539 default: return "??"; | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 540 } | 
| 
970d6199f2c5
gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
 Michael Spacefalcon <msokolov@ivan.Harhan.ORG> parents: diff
changeset | 541 } | 
