📄 smsgendrv.cod
字号:
DCB 0x0, " ", 0x0, "l", 0x0, "e", 0x0, "s", 0x0, "s", 0x0, " "
DCB 0x0, "t", 0x0, "h", 0x0, "a", 0x0, "n", 0x0, " ", 0x0, "m"
DCB 0x0, "s", 0x0, "g", 0x0, " ", 0x0, "l", 0x0, "e", 0x0, "n"
DCB 0x0, " ", 0x0, "%", 0x0, "d", 0x0, " ", 0x0, ">", 0x0, " "
DCB 0x0, "%", 0x0, "d", 0x0, " ", 0x0, "(", 0x0, "s", 0x0, "p"
DCB 0x0, "l", 0x0, "i", 0x0, "t", 0x0, ")", 0x0, 0xd, 0x0, 0xa
DCB 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1GO@OEEKCELD@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAR?$AAe?$AAc?$AAe?$AAi?$AAv?$AAe?$AAd?$AA?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1GO@OEEKCELD@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAR?$AAe?$AAc?$AAe?$AAi?$AAv?$AAe?$AAd?$AA?5@| DCB "S"
DCB 0x0, "m", 0x0, "s", 0x0, "G", 0x0, "e", 0x0, "n", 0x0, "D"
DCB 0x0, "r", 0x0, "v", 0x0, ":", 0x0, " ", 0x0, "R", 0x0, "e"
DCB 0x0, "c", 0x0, "e", 0x0, "i", 0x0, "v", 0x0, "e", 0x0, "d"
DCB 0x0, " ", 0x0, "l", 0x0, "e", 0x0, "n", 0x0, " ", 0x0, "l"
DCB 0x0, "e", 0x0, "s", 0x0, "s", 0x0, " ", 0x0, "t", 0x0, "h"
DCB 0x0, "a", 0x0, "n", 0x0, " ", 0x0, "m", 0x0, "s", 0x0, "g"
DCB 0x0, " ", 0x0, "h", 0x0, "e", 0x0, "a", 0x0, "d", 0x0, "e"
DCB 0x0, "r", 0x0, " ", 0x0, "s", 0x0, "i", 0x0, "z", 0x0, "e"
DCB 0x0, " ", 0x0, "%", 0x0, "d", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0
DCB 0x0 ; `string'
; Function compile flags: /Ogsy
; File e:\wm604\platform\seuicbsp\src\drivers\dmbdrv\gendrv\smsgendrv.c
00000 AREA |.text| { |BD_ReadCB| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |BD_ReadCB| PROC
; 891 : {
00000 |$L42294|
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 |$M42292|
00004 e1a07001 mov r7, r1
00008 e1a04000 mov r4, r0
; 892 : PSMS_GEN_DEVICE_ST pGenDev = (PSMS_GEN_DEVICE_ST)hContext;
; 893 : SmsMsgHdr_ST* SmsMsgHdrPtr;
; 894 : PBYTE pMsgData;
; 895 : UINT32 msgDataLen;
; 896 :
; 897 : //RETAILMSG(1,(TEXT("SmsGenDrv: +BD_ReadCB\r\n")));
; 898 :
; 899 : if (pGenDev->MsgHdrReceived == FALSE)
0000c e5943134 ldr r3, [r4, #0x134]
00010 e1b01003 movs r1, r3
00014 1a000012 bne |$L41756|
; 900 : {
; 901 : SmsMsgHdrPtr = (SmsMsgHdr_ST*)pBuffer;
; 902 : if (SmsMsgHdrPtr->msgLength > BufSize)
00018 e1d730b4 ldrh r3, [r7, #4]
0001c e1a05007 mov r5, r7
00020 e1530002 cmp r3, r2
00024 9a00000c bls |$L41758|
; 903 : {
; 904 : // message is split. NOTE: support only split of header from message data.
; 905 : if (BufSize < sizeof(SmsMsgHdr_ST))
00028 e3520008 cmp r2, #8
0002c 2a000004 bcs |$L41760|
; 906 : {
; 907 : RETAILMSG(1, (TEXT("SmsGenDrv: Received len less than msg header size %d\r\n"),BufSize));
00030 e59f0194 ldr r0, [pc, #0x194]
00034 e1a01002 mov r1, r2
00038 eb000000 bl NKDbgPrintfW
; 1006 :
; 1007 : // RETAILMSG(1,(TEXT("SmsGenDrv: -BD_ReadCB\r\n")));@@@@@@@@@@@
; 1008 : }
0003c e8bd40f0 ldmia sp!, {r4 - r7, lr}
00040 e12fff1e bx lr
00044 |$L41760|
; 908 : return;
; 909 : }
; 910 :
; 911 : // keep the header
; 912 : memcpy(&pGenDev->SmsMsgHdr,SmsMsgHdrPtr,sizeof(SmsMsgHdr_ST));
00044 e2840f4b add r0, r4, #0x4B, 30
00048 e3a02008 mov r2, #8
0004c e1a01007 mov r1, r7
00050 eb000000 bl memcpy
; 913 : // Exit. The msg data will should be received in the next call to the function
; 914 : pGenDev->MsgHdrReceived = TRUE;
00054 e3a03001 mov r3, #1
; 915 : return;
00058 ea000054 b |$L42290|
0005c |$L41758|
; 916 : }
; 917 : else
; 918 : {
; 919 : pMsgData = (PBYTE)(SmsMsgHdrPtr + 1);
0005c e2877008 add r7, r7, #8
; 920 : }
; 921 : }
; 922 : else
00060 ea000000 b |$L41765|
00064 |$L41756|
; 923 : {
; 924 : SmsMsgHdrPtr = &pGenDev->SmsMsgHdr;
00064 e2845f4b add r5, r4, #0x4B, 30
; 925 : pMsgData = pBuffer;
00068 |$L41765|
; 926 : }
; 927 :
; 928 : // check msg total length
; 929 : if (pGenDev->MsgHdrReceived) // split
; 930 : {
; 931 : if (SmsMsgHdrPtr->msgLength > (BufSize + sizeof(SmsMsgHdr_ST)))
00068 e1d560b4 ldrh r6, [r5, #4]
0006c e3510000 cmp r1, #0
00070 0a000006 beq |$L41766|
00074 e2822008 add r2, r2, #8
00078 e1560002 cmp r6, r2
0007c 9a00000a bls |$L41772|
; 932 : {
; 933 : RETAILMSG(1, (TEXT("SmsGenDrv: Received less than msg len %d > %d (split)\r\n"),
; 934 : SmsMsgHdrPtr->msgLength,(BufSize + sizeof(SmsMsgHdr_ST))));
00080 e59f0140 ldr r0, [pc, #0x140]
00084 e1a01006 mov r1, r6
00088 eb000000 bl NKDbgPrintfW
; 935 : pGenDev->MsgHdrReceived = FALSE;
; 936 : return;
0008c ea000046 b |$L41795|
00090 |$L41766|
; 937 : }
; 938 : }
; 939 : else // not split
; 940 : {
; 941 : if (SmsMsgHdrPtr->msgLength > BufSize)
00090 e1560002 cmp r6, r2
00094 9a000004 bls |$L41772|
; 942 : {
; 943 : RETAILMSG(1,(TEXT("SmsGenDrv: Received less than msg len %d > %d\r\n"),
; 944 : SmsMsgHdrPtr->msgLength,BufSize));
00098 e59f0124 ldr r0, [pc, #0x124]
0009c e1a01006 mov r1, r6
000a0 eb000000 bl NKDbgPrintfW
; 1006 :
; 1007 : // RETAILMSG(1,(TEXT("SmsGenDrv: -BD_ReadCB\r\n")));@@@@@@@@@@@
; 1008 : }
000a4 e8bd40f0 ldmia sp!, {r4 - r7, lr}
000a8 e12fff1e bx lr
000ac |$L41772|
; 945 : return;
; 946 : }
; 947 : }
; 948 :
; 949 : msgDataLen = SmsMsgHdrPtr->msgLength - sizeof(SmsMsgHdr_ST);
; 950 :
; 951 : //RETAILMSG(1,(TEXT("SmsGenDrv: Received msg - MsgType %d SrcId %X DstId %X Len %d Flags %X Size %d bufSize %d\r\n"),
; 952 : // SmsMsgHdrPtr->msgType,SmsMsgHdrPtr->msgSrcId,SmsMsgHdrPtr->msgDstId,
; 953 : // SmsMsgHdrPtr->msgLength,SmsMsgHdrPtr->msgFlags,msgDataLen,BufSize));
; 954 :
; 955 : switch (SmsMsgHdrPtr->msgType)
000ac e1d520b0 ldrh r2, [r5]
000b0 e3a03e23 mov r3, #0x23, 28
000b4 e3833002 orr r3, r3, #2
000b8 e1520003 cmp r2, r3
000bc 0a000028 beq |$L41790|
000c0 e3a03f97 mov r3, #0x97, 30
000c4 e3833003 orr r3, r3, #3
000c8 e1520003 cmp r2, r3
000cc 0a000007 beq |$L41784|
000d0 e3a03fae mov r3, #0xAE, 30
000d4 e3833003 orr r3, r3, #3
000d8 e1520003 cmp r2, r3
000dc 0a00000e beq |$L41779|
000e0 e3a03fb6 mov r3, #0xB6, 30
000e4 e3833001 orr r3, r3, #1
000e8 e1520003 cmp r2, r3
000ec 1a00001f bne |$L42282|
000f0 |$L41784|
; 970 : case MSG_SMS_NON_IP_MSG:
; 971 : case 729:
; 972 : if (SmsMsgHdrPtr->msgDstId >= SIANO_MIN_DATA_FILE_STREAM && SmsMsgHdrPtr->msgDstId <= SIANO_MAX_DATA_FILE_STREAM)
000f0 e5d51003 ldrb r1, [r5, #3]
000f4 e3510001 cmp r1, #1
000f8 3a000016 bcc |$L41785|
000fc e3510006 cmp r1, #6
00100 8a000014 bhi |$L41785|
; 973 : {
; 974 : if (!pGenDev->blockIncommingDataPackets)
00104 e5943328 ldr r3, [r4, #0x328]
00108 e3530000 cmp r3, #0
0010c 1a000026 bne |$L41795|
; 975 : {
; 976 : #ifdef DVBT_CHECK_TS_SEQ_NUM
; 977 : CheckTSSeqNum(pMsgData,msgDataLen);
; 978 : #endif
; 979 : FileBuffAppend(pGenDev,(SIANO_FILE_STREAM_TYPE_E)SmsMsgHdrPtr->msgDstId,pMsgData,msgDataLen);
00110 e2463008 sub r3, r6, #8
00114 e1a02007 mov r2, r7
; 980 : }
; 981 : }
; 982 : else
00118 ea000021 b |$L42291|
0011c |$L41779|
; 956 : {
; 957 : case MSG_SMS_IP_MSG:
; 958 : if (pGenDev->pReadIpCBFunc)
0011c e594313c ldr r3, [r4, #0x13C]
00120 e1b05003 movs r5, r3
00124 0a000008 beq |$L41780|
; 959 : {
; 960 : if (!pGenDev->blockIncommingDataPackets)
00128 e5943328 ldr r3, [r4, #0x328]
0012c e3530000 cmp r3, #0
00130 1a00001d bne |$L41795|
; 961 : {
; 962 : pGenDev->pReadIpCBFunc(pGenDev->hRdIpContext,pMsgData,msgDataLen);
00134 e5940140 ldr r0, [r4, #0x140]
00138 e2462008 sub r2, r6, #8
0013c e1a01007 mov r1, r7
00140 e1a0e00f mov lr, pc
00144 e12fff15 bx r5
; 963 : }
; 964 : }
; 965 : else
00148 ea000017 b |$L41795|
0014c |$L41780|
; 966 : {
; 967 : RETAILMSG(1, (TEXT("SmsGenDrv: No ReadIpCB to accept IP msg\r\n")));
0014c e59f006c ldr r0, [pc, #0x6C]
00150 eb000000 bl NKDbgPrintfW
; 968 : }
; 969 : break;
00154 ea000014 b |$L41795|
00158 |$L41785|
; 983 : {
; 984 : RETAILMSG(1,(TEXT("SmsGenDrv: FileBuffAppend : request to append to unknow file stream %d\r\n"),
; 985 : SmsMsgHdrPtr->msgDstId));
00158 e59f005c ldr r0, [pc, #0x5C]
0015c eb000000 bl NKDbgPrintfW
; 986 : }
; 987 : break;
00160 ea000011 b |$L41795|
00164 |$L41790|
; 988 : case MSG_SMS_RF_TUNE_RES:
; 989 : SetEvent(pGenDev->hTuneEvent);
00164 e5940008 ldr r0, [r4, #8]
00168 e3a01003 mov r1, #3
0016c eb000000 bl EventModify
00170 |$L42282|
; 990 : default: // control message
; 991 : if (pGenDev->MsgHdrReceived) // split
00170 e5943134 ldr r3, [r4, #0x134]
; 992 : {
; 993 : FileBuffAppend(pGenDev,SIANO_CTRL_FILE_STREAM,(PBYTE)SmsMsgHdrPtr,sizeof(SmsMsgHdr_ST));
00174 e1a02005 mov r2, r5
00178 e3a01000 mov r1, #0
0017c e3530000 cmp r3, #0
00180 0a000006 beq |$L41792|
00184 e3a03008 mov r3, #8
00188 e1a00004 mov r0, r4
0018c eb000000 bl FileBuffAppend
; 994 : FileBuffAppend(pGenDev,SIANO_CTRL_FILE_STREAM,pMsgData,msgDataLen);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -