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

📄 smsgendrv.cod

📁 这是mobile6.0下的DMB驱动
💻 COD
📖 第 1 页 / 共 5 页
字号:
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |HandleToFS| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |HandleToFS| PROC

; 821  : {

  00000		 |$L42253|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M42251|

; 822  : 	int i;
; 823  : 
; 824  : 	for (i = 0;i < SIANO_NUM_OF_FILE_STREAMS;i++)

  00004	e3a02000	 mov         r2, #0
  00008	e1a0e000	 mov         lr, r0
  0000c		 |$L41716|

; 825  : 	{
; 826  : 		if (pGenDrv->fStreams[i].userHandle == Handle)

  0000c	e59e3010	 ldr         r3, [lr, #0x10]
  00010	e1530001	 cmp         r3, r1
  00014	0a000006	 beq         |$L42244|
  00018	e2822001	 add         r2, r2, #1
  0001c	e3520007	 cmp         r2, #7
  00020	e28ee028	 add         lr, lr, #0x28
  00024	bafffff8	 blt         |$L41716|

; 829  : 		}
; 830  : 	}
; 831  : 	return NULL;

  00028	e3a00000	 mov         r0, #0

; 832  : }

  0002c	e49de004	 ldr         lr, [sp], #4
  00030	e12fff1e	 bx          lr
  00034		 |$L42244|

; 827  : 		{
; 828  : 			return &pGenDrv->fStreams[i];

  00034	e0823102	 add         r3, r2, r2, lsl #2
  00038	e0803183	 add         r3, r0, r3, lsl #3
  0003c	e2830010	 add         r0, r3, #0x10

; 832  : }

  00040	e49de004	 ldr         lr, [sp], #4
  00044	e12fff1e	 bx          lr
  00048		 |$M42252|

			 ENDP  ; |HandleToFS|

	EXPORT	|FileBuffAppend|
	EXPORT	|??_C@_1GO@NBBCJONI@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAF?$AAi?$AAl?$AAe?$AA?5?$AAs?$AAt?$AAr?$AAe@| [ DATA ] ; `string'
	EXPORT	|??_C@_1GA@BFDDNOGO@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAB?$AAu?$AAf?$AAf?$AAA@| [ DATA ] ; `string'
	IMPORT	|memcpy|
; File e:\wm604\public\wpc\cesysgen\sdk\inc\kfuncs.h

  00000			 AREA	 |.text| { |FileBuffAppend| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$FileBuffAppend|, PDATA, SELECTION=5, ASSOC=|.text| { |FileBuffAppend| } ; comdat associative
|$T42275| DCD	|$L42274|
	DCD	0x40003d01

  00000			 AREA	 |.rdata| { |??_C@_1GA@BFDDNOGO@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAB?$AAu?$AAf?$AAf?$AAA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1GA@BFDDNOGO@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAB?$AAu?$AAf?$AAf?$AAA@| DCB "S"
	DCB	0x0, "m", 0x0, "s", 0x0, "G", 0x0, "e", 0x0, "n", 0x0, "D"
	DCB	0x0, "r", 0x0, "v", 0x0, ":", 0x0, " ", 0x0, "F", 0x0, "i"
	DCB	0x0, "l", 0x0, "e", 0x0, "B", 0x0, "u", 0x0, "f", 0x0, "f"
	DCB	0x0, "A", 0x0, "p", 0x0, "p", 0x0, "e", 0x0, "n", 0x0, "d"
	DCB	0x0, " ", 0x0, "-", 0x0, " ", 0x0, "b", 0x0, "u", 0x0, "f"
	DCB	0x0, "f", 0x0, "e", 0x0, "r", 0x0, " ", 0x0, "%", 0x0, "d"
	DCB	0x0, " ", 0x0, "i", 0x0, "s", 0x0, " ", 0x0, "f", 0x0, "u"
	DCB	0x0, "l", 0x0, "l", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_1GO@NBBCJONI@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAF?$AAi?$AAl?$AAe?$AA?5?$AAs?$AAt?$AAr?$AAe@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1GO@NBBCJONI@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAF?$AAi?$AAl?$AAe?$AA?5?$AAs?$AAt?$AAr?$AAe@| DCB "S"
	DCB	0x0, "m", 0x0, "s", 0x0, "G", 0x0, "e", 0x0, "n", 0x0, "D"
	DCB	0x0, "r", 0x0, "v", 0x0, ":", 0x0, " ", 0x0, "F", 0x0, "i"
	DCB	0x0, "l", 0x0, "e", 0x0, " ", 0x0, "s", 0x0, "t", 0x0, "r"
	DCB	0x0, "e", 0x0, "a", 0x0, "m", 0x0, " ", 0x0, "e", 0x0, "r"
	DCB	0x0, "r", 0x0, "o", 0x0, "r", 0x0, ":", 0x0, " ", 0x0, "r"
	DCB	0x0, "e", 0x0, "q", 0x0, "u", 0x0, "e", 0x0, "s", 0x0, "t"
	DCB	0x0, " ", 0x0, "t", 0x0, "o", 0x0, " ", 0x0, "a", 0x0, "p"
	DCB	0x0, "p", 0x0, "e", 0x0, "n", 0x0, "d", 0x0, " ", 0x0, "0"
	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| { |FileBuffAppend| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |FileBuffAppend| PROC

; 837  : {

  00000		 |$L42274|
  00000	e92d40f0	 stmdb       sp!, {r4 - r7, lr}
  00004		 |$M42272|
  00004	e1b05003	 movs        r5, r3
  00008	e1a07002	 mov         r7, r2
  0000c	e1a06001	 mov         r6, r1

; 838  : 	ULONG sizeToWr;
; 839  : 	PFILE_STREAM_PARAMS fStream = &pGenDev->fStreams[fsType];

  00010	e086e106	 add         lr, r6, r6, lsl #2
  00014	e080418e	 add         r4, r0, lr, lsl #3

; 840  : 
; 841  : 	if (len == 0)

  00018	1a000003	 bne         |$L41732|

; 842  : 	{
; 843  : 		RETAILMSG(1, (TEXT("SmsGenDrv: File stream error: request to append 0 %d\r\n"),fsType));

  0001c	e59f00cc	 ldr         r0, [pc, #0xCC]
  00020	eb000000	 bl          NKDbgPrintfW

; 886  : }

  00024	e8bd40f0	 ldmia       sp!, {r4 - r7, lr}
  00028	e12fff1e	 bx          lr
  0002c		 |$L41732|

; 844  : 		return;
; 845  : 	}
; 846  : 
; 847  : 	WaitForSingleObject(fStream->semRdWr, INFINITE);

  0002c	e5940030	 ldr         r0, [r4, #0x30]
  00030	e3e01000	 mvn         r1, #0
  00034	eb000000	 bl          WaitForSingleObject

; 848  : 
; 849  : 	if (fStream->userHandle == NULL)

  00038	e5943010	 ldr         r3, [r4, #0x10]
  0003c	e3530000	 cmp         r3, #0

; 850  : 	{
; 851  : 		ReleaseSemaphore(fStream->semRdWr,1,NULL);
; 852  : 		return;

  00040	0a000023	 beq         |$L42271|

; 853  : 	}
; 854  : 
; 855  : 	if (len > (fStream->fileBuffSize - fStream->count))

  00044	e5942020	 ldr         r2, [r4, #0x20]
  00048	e594302c	 ldr         r3, [r4, #0x2C]
  0004c	e0423003	 sub         r3, r2, r3
  00050	e1550003	 cmp         r5, r3
  00054	9a000003	 bls         |$L41737|

; 856  : 	{
; 857  : 		RETAILMSG(1, (TEXT("SmsGenDrv: FileBuffAppend - buffer %d is full\r\n"),fsType));

  00058	e59f008c	 ldr         r0, [pc, #0x8C]
  0005c	e1a01006	 mov         r1, r6
  00060	eb000000	 bl          NKDbgPrintfW

; 858  : 		ReleaseSemaphore(fStream->semRdWr,1,NULL);
; 859  : 		return;

  00064	ea00001a	 b           |$L42271|
  00068		 |$L41737|

; 860  : 	}
; 861  : 
; 862  : 	sizeToWr = len;
; 863  : 	if ((fStream->fileWrIdx + len) > fStream->fileBuffSize)

  00068	e5940024	 ldr         r0, [r4, #0x24]
  0006c	e1a06005	 mov         r6, r5

; 864  : 		sizeToWr = fStream->fileBuffSize - fStream->fileWrIdx;
; 865  : 
; 866  : 	memcpy(fStream->pFileBuffer + fStream->fileWrIdx,dataPtr,sizeToWr);

  00070	e1a01007	 mov         r1, r7
  00074	e0803005	 add         r3, r0, r5
  00078	e1530002	 cmp         r3, r2
  0007c	e594301c	 ldr         r3, [r4, #0x1C]
  00080	80426000	 subhi       r6, r2, r0
  00084	e1a02006	 mov         r2, r6
  00088	e0830000	 add         r0, r3, r0
  0008c	eb000000	 bl          memcpy

; 867  : 
; 868  : 	fStream->fileWrIdx += len;

  00090	e5943024	 ldr         r3, [r4, #0x24]

; 869  : 	if (fStream->fileWrIdx >= fStream->fileBuffSize)

  00094	e5942020	 ldr         r2, [r4, #0x20]
  00098	e0833005	 add         r3, r3, r5
  0009c	e1530002	 cmp         r3, r2
  000a0	e5843024	 str         r3, [r4, #0x24]

; 870  : 		fStream->fileWrIdx -= fStream->fileBuffSize;

  000a4	20433002	 subcs       r3, r3, r2
  000a8	25843024	 strcs       r3, [r4, #0x24]

; 871  : 
; 872  : 	dataPtr += sizeToWr;
; 873  : 	sizeToWr = len - sizeToWr;

  000ac	e0552006	 subs        r2, r5, r6

; 874  : 
; 875  : 	// copy the residual to the start of the buffer
; 876  : 	if (sizeToWr > 0)
; 877  : 	{
; 878  : 		memcpy(fStream->pFileBuffer,dataPtr,sizeToWr);

  000b0	1594001c	 ldrne       r0, [r4, #0x1C]
  000b4	10871006	 addne       r1, r7, r6
  000b8	1b000000	 blne        memcpy

; 879  : 	}
; 880  : 
; 881  : 	fStream->count += len;

  000bc	e594302c	 ldr         r3, [r4, #0x2C]

; 882  : 
; 883  : 	SetEvent(fStream->hReadEvent);

  000c0	e5940018	 ldr         r0, [r4, #0x18]
  000c4	e3a01003	 mov         r1, #3
  000c8	e0833005	 add         r3, r3, r5
  000cc	e584302c	 str         r3, [r4, #0x2C]
  000d0	eb000000	 bl          EventModify
  000d4		 |$L42271|

; 884  : 
; 885  : 	ReleaseSemaphore(fStream->semRdWr,1,NULL);

  000d4	e5940030	 ldr         r0, [r4, #0x30]
  000d8	e3a02000	 mov         r2, #0
  000dc	e3a01001	 mov         r1, #1
  000e0	eb000000	 bl          ReleaseSemaphore

; 886  : }

  000e4	e8bd40f0	 ldmia       sp!, {r4 - r7, lr}
  000e8	e12fff1e	 bx          lr
  000ec		 |$L42277|
  000ec	00000000	 DCD         |??_C@_1GA@BFDDNOGO@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAB?$AAu?$AAf?$AAf?$AAA@|
  000f0	00000000	 DCD         |??_C@_1GO@NBBCJONI@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAF?$AAi?$AAl?$AAe?$AA?5?$AAs?$AAt?$AAr?$AAe@|
  000f4		 |$M42273|

			 ENDP  ; |FileBuffAppend|

	EXPORT	|BD_ReadCB|
	EXPORT	|??_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 ] ; `string'
	EXPORT	|??_C@_1HA@MJEOEBBO@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAR?$AAe?$AAc?$AAe?$AAi?$AAv?$AAe?$AAd?$AA?5@| [ DATA ] ; `string'
	EXPORT	|??_C@_1GA@IADMJACF@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAR?$AAe?$AAc?$AAe?$AAi?$AAv?$AAe?$AAd?$AA?5@| [ DATA ] ; `string'
	EXPORT	|??_C@_1FE@HONMAGFC@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAN?$AAo?$AA?5?$AAR?$AAe?$AAa?$AAd?$AAI?$AAp@| [ DATA ] ; `string'
	EXPORT	|??_C@_1JC@HAHINJLH@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAB?$AAu?$AAf?$AAf?$AAA@| [ DATA ] ; `string'
; File e:\wm604\public\wpc\cesysgen\sdk\inc\kfuncs.h

  00000			 AREA	 |.text| { |BD_ReadCB| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$BD_ReadCB|, PDATA, SELECTION=5, ASSOC=|.text| { |BD_ReadCB| } ; comdat associative
|$T42295| DCD	|$L42294|
	DCD	0x40007401

  00000			 AREA	 |.rdata| { |??_C@_1JC@HAHINJLH@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAB?$AAu?$AAf?$AAf?$AAA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1JC@HAHINJLH@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAF?$AAi?$AAl?$AAe?$AAB?$AAu?$AAf?$AAf?$AAA@| DCB "S"
	DCB	0x0, "m", 0x0, "s", 0x0, "G", 0x0, "e", 0x0, "n", 0x0, "D"
	DCB	0x0, "r", 0x0, "v", 0x0, ":", 0x0, " ", 0x0, "F", 0x0, "i"
	DCB	0x0, "l", 0x0, "e", 0x0, "B", 0x0, "u", 0x0, "f", 0x0, "f"
	DCB	0x0, "A", 0x0, "p", 0x0, "p", 0x0, "e", 0x0, "n", 0x0, "d"
	DCB	0x0, " ", 0x0, ":", 0x0, " ", 0x0, "r", 0x0, "e", 0x0, "q"
	DCB	0x0, "u", 0x0, "e", 0x0, "s", 0x0, "t", 0x0, " ", 0x0, "t"
	DCB	0x0, "o", 0x0, " ", 0x0, "a", 0x0, "p", 0x0, "p", 0x0, "e"
	DCB	0x0, "n", 0x0, "d", 0x0, " ", 0x0, "t", 0x0, "o", 0x0, " "
	DCB	0x0, "u", 0x0, "n", 0x0, "k", 0x0, "n", 0x0, "o", 0x0, "w"
	DCB	0x0, " ", 0x0, "f", 0x0, "i", 0x0, "l", 0x0, "e", 0x0, " "
	DCB	0x0, "s", 0x0, "t", 0x0, "r", 0x0, "e", 0x0, "a", 0x0, "m"
	DCB	0x0, " ", 0x0, "%", 0x0, "d", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0
	DCB	0x0					; `string'

  00000			 AREA	 |.rdata| { |??_C@_1FE@HONMAGFC@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAN?$AAo?$AA?5?$AAR?$AAe?$AAa?$AAd?$AAI?$AAp@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1FE@HONMAGFC@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAN?$AAo?$AA?5?$AAR?$AAe?$AAa?$AAd?$AAI?$AAp@| DCB "S"
	DCB	0x0, "m", 0x0, "s", 0x0, "G", 0x0, "e", 0x0, "n", 0x0, "D"
	DCB	0x0, "r", 0x0, "v", 0x0, ":", 0x0, " ", 0x0, "N", 0x0, "o"
	DCB	0x0, " ", 0x0, "R", 0x0, "e", 0x0, "a", 0x0, "d", 0x0, "I"
	DCB	0x0, "p", 0x0, "C", 0x0, "B", 0x0, " ", 0x0, "t", 0x0, "o"
	DCB	0x0, " ", 0x0, "a", 0x0, "c", 0x0, "c", 0x0, "e", 0x0, "p"
	DCB	0x0, "t", 0x0, " ", 0x0, "I", 0x0, "P", 0x0, " ", 0x0, "m"
	DCB	0x0, "s", 0x0, "g", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_1GA@IADMJACF@?$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@_1GA@IADMJACF@?$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, "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, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_1HA@MJEOEBBO@?$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@_1HA@MJEOEBBO@?$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"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -