📄 smsgendrv.cod
字号:
; 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 + -