⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smsgendrv.cod

📁 这是mobile6.0下的DMB驱动
💻 COD
📖 第 1 页 / 共 5 页
字号:
	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 + -