📄 smsgendrv.cod
字号:
IMPORT |WaitForSingleObject|
; File e:\wm604\platform\seuicbsp\src\drivers\dmbdrv\gendrv\smsgendrv.c
00000 AREA |.text| { |FlushAllFileBuf| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$FlushAllFileBuf|, PDATA, SELECTION=5, ASSOC=|.text| { |FlushAllFileBuf| } ; comdat associative
|$T42195| DCD |$L42194|
DCD 0x40001701
; Function compile flags: /Ogsy
00000 AREA |.text| { |FlushAllFileBuf| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |FlushAllFileBuf| PROC
; 208 : {
00000 |$L42194|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 |$M42192|
; 209 : int i;
; 210 :
; 211 : for (i = 1;i < SIANO_NUM_OF_FILE_STREAMS;i++)
00004 e3a05001 mov r5, #1
00008 e2804028 add r4, r0, #0x28
0000c e3a06000 mov r6, #0
00010 |$L41409|
; 212 : {
; 213 : WaitForSingleObject(pGenDev->fStreams[i].semRdWr, INFINITE);
00010 e5940030 ldr r0, [r4, #0x30]
00014 e3e01000 mvn r1, #0
00018 eb000000 bl WaitForSingleObject
; 214 : if (pGenDev->fStreams[i].userHandle != NULL && i != SIANO_CTRL_FILE_STREAM)
0001c e5943010 ldr r3, [r4, #0x10]
; 215 : {
; 216 : pGenDev->fStreams[i].fileWrIdx = 0;
; 217 : pGenDev->fStreams[i].fileRdIdx = 0;
; 218 : pGenDev->fStreams[i].count = 0;
; 219 : }
; 220 : ReleaseSemaphore(pGenDev->fStreams[i].semRdWr,1,NULL);
00020 e5940030 ldr r0, [r4, #0x30]
00024 e3a02000 mov r2, #0
00028 e3530000 cmp r3, #0
0002c 13550000 cmpne r5, #0
00030 e3a01001 mov r1, #1
00034 15846024 strne r6, [r4, #0x24]
00038 15846028 strne r6, [r4, #0x28]
0003c 1584602c strne r6, [r4, #0x2C]
00040 eb000000 bl ReleaseSemaphore
00044 e2855001 add r5, r5, #1
00048 e3550007 cmp r5, #7
0004c e2844028 add r4, r4, #0x28
00050 baffffee blt |$L41409|
; 221 : }
; 222 :
; 223 : }
00054 e8bd4070 ldmia sp!, {r4 - r6, lr}
00058 e12fff1e bx lr
0005c |$M42193|
ENDP ; |FlushAllFileBuf|
EXPORT |??_C@_1EA@CNOGDG@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAD?$AAL?$AAL?$AA_?$AAP?$AAR?$AAO?$AAC?$AAE@| [ DATA ] ; `string'
EXPORT |DllMain|
IMPORT |NKDbgPrintfW|
IMPORT |CloseHandle|
00000 AREA |.text| { |DllMain| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$DllMain|, PDATA, SELECTION=5, ASSOC=|.text| { |DllMain| } ; comdat associative
|$T42205| DCD |$L42204|
DCD 0x40000e01
00000 AREA |.rdata| { |??_C@_1EA@CNOGDG@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAD?$AAL?$AAL?$AA_?$AAP?$AAR?$AAO?$AAC?$AAE@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EA@CNOGDG@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAD?$AAL?$AAL?$AA_?$AAP?$AAR?$AAO?$AAC?$AAE@| DCB "S"
DCB 0x0, "m", 0x0, "s", 0x0, "G", 0x0, "e", 0x0, "n", 0x0, "D"
DCB 0x0, "r", 0x0, "v", 0x0, ":", 0x0, " ", 0x0, "D", 0x0, "L"
DCB 0x0, "L", 0x0, "_", 0x0, "P", 0x0, "R", 0x0, "O", 0x0, "C"
DCB 0x0, "E", 0x0, "S", 0x0, "S", 0x0, "_", 0x0, "D", 0x0, "E"
DCB 0x0, "T", 0x0, "A", 0x0, "C", 0x0, "H", 0x0, 0xd, 0x0, 0xa
DCB 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |DllMain| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |DllMain| PROC
; 232 : {
00000 |$L42204|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M42202|
00004 e3510000 cmp r1, #0
; 233 : BOOL bRc = TRUE;
; 234 :
; 235 : UNREFERENCED_PARAMETER(hDllHandle);
; 236 : UNREFERENCED_PARAMETER(lpreserved);
; 237 :
; 238 : switch (dwReason)
00008 1a000005 bne |$L41431|
; 239 : {
; 240 : case DLL_PROCESS_ATTACH:
; 241 : REGISTERZONES(hDllHandle);
; 242 :
; 243 : // keep file handle open to indicate that the driver is loaded.
; 244 : // on failure, continue without that indication
; 245 : #ifdef LOG_TO_FILE
; 246 : hLogFile = CreateFile(LOG_FILE,
; 247 : GENERIC_WRITE,
; 248 : FILE_SHARE_READ | FILE_SHARE_WRITE,
; 249 : NULL,
; 250 : CREATE_ALWAYS,
; 251 : 0,
; 252 : NULL);
; 253 :
; 254 :
; 255 :
; 256 : InitializeCriticalSection(&g_CriticalSection);
; 257 : #endif
; 258 : // RETAILMSG(1, (TEXT("SmsGenDrv: DLL_PROCESS_ATTACH\r\n")));
; 259 : break;
; 260 :
; 261 : case DLL_PROCESS_DETACH:
; 262 : RETAILMSG(1, (TEXT("SmsGenDrv: DLL_PROCESS_DETACH\r\n")));
0000c e59f0020 ldr r0, [pc, #0x20]
00010 eb000000 bl NKDbgPrintfW
; 263 : if (hLogFile != INVALID_HANDLE_VALUE)
00014 e59f3014 ldr r3, [pc, #0x14]
00018 e5930000 ldr r0, [r3]
0001c e3700001 cmn r0, #1
; 264 : {
; 265 : CloseHandle(hLogFile);
00020 1b000000 blne CloseHandle
00024 |$L41431|
; 266 : }
; 267 : #ifdef LOG_TO_FILE
; 268 : DeleteCriticalSection(&g_CriticalSection);
; 269 : #endif
; 270 : break;
; 271 :
; 272 : default:
; 273 : break;
; 274 : }
; 275 :
; 276 : return bRc;
00024 e3a00001 mov r0, #1
; 277 : }
00028 e49de004 ldr lr, [sp], #4
0002c e12fff1e bx lr
00030 |$L42207|
00030 00000000 DCD |hLogFile|
00034 00000000 DCD |??_C@_1EA@CNOGDG@?$AAS?$AAm?$AAs?$AAG?$AAe?$AAn?$AAD?$AAr?$AAv?$AA?3?$AA?5?$AAD?$AAL?$AAL?$AA_?$AAP?$AAR?$AAO?$AAC?$AAE@|
00038 |$M42203|
ENDP ; |DllMain|
EXPORT |SGD_Open|
00000 AREA |.text| { |SGD_Open| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$SGD_Open|, PDATA, SELECTION=5, ASSOC=|.text| { |SGD_Open| } ; comdat associative
|$T42216| DCD |$L42215|
DCD 0x40000800
; Function compile flags: /Ogsy
00000 AREA |.text| { |SGD_Open| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |SGD_Open| PROC
; 469 : {
00000 |$L42215|
00000 |$M42213|
; 470 : PSMS_GEN_DEVICE_ST pGenDev = (PSMS_GEN_DEVICE_ST)hDeviceContext;
; 471 :
; 472 : DBGMSG(ZONE_INFO, (TEXT("SmsGenDrv: +SGD_Open\r\n")));
; 473 :
; 474 : if (pGenDev->hBdDevice == INVALID_HANDLE_VALUE)
00000 e5903000 ldr r3, [r0]
00004 e3730001 cmn r3, #1
; 475 : {
; 476 : // cummunication with bus briver is not ready yet
; 477 : DBGMSG(ZONE_INFO, (TEXT("SmsGenDrv: -SGD_Open cummunication with bus briver is not ready yet\r\n")));
; 478 : return 0;
00008 03a00000 moveq r0, #0
; 479 : }
; 480 :
; 481 : pGenDev->fStreamHandleCnt++;
0000c 15903128 ldrne r3, [r0, #0x128]
00010 12833001 addne r3, r3, #1
00014 15803128 strne r3, [r0, #0x128]
; 482 :
; 483 : DBGMSG(ZONE_INFO, (TEXT("SmsGenDrv: -SGD_Open fStreamHandleCnt 0x%X\r\n"),pGenDev->fStreamHandleCnt));
; 484 :
; 485 : return pGenDev->fStreamHandleCnt;
00018 11a00003 movne r0, r3
; 486 : }
0001c e12fff1e bx lr
00020 |$M42214|
ENDP ; |SGD_Open|
EXPORT |SGD_PowerDown|
00000 AREA |.text| { |SGD_PowerDown| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$SGD_PowerDown|, PDATA, SELECTION=5, ASSOC=|.text| { |SGD_PowerDown| } ; comdat associative
|$T42223| DCD |$L42222|
DCD 0x40000100
; Function compile flags: /Ogsy
00000 AREA |.text| { |SGD_PowerDown| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |SGD_PowerDown| PROC
; 786 : {
00000 |$L42222|
00000 |$M42220|
; 787 : return;
; 788 : }
00000 e12fff1e bx lr
00004 |$M42221|
ENDP ; |SGD_PowerDown|
EXPORT |SGD_PowerUp|
00000 AREA |.text| { |SGD_PowerUp| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$SGD_PowerUp|, PDATA, SELECTION=5, ASSOC=|.text| { |SGD_PowerUp| } ; comdat associative
|$T42230| DCD |$L42229|
DCD 0x40000100
; Function compile flags: /Ogsy
00000 AREA |.text| { |SGD_PowerUp| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |SGD_PowerUp| PROC
; 798 : {
00000 |$L42229|
00000 |$M42227|
; 799 : return;
; 800 : }
00000 e12fff1e bx lr
00004 |$M42228|
ENDP ; |SGD_PowerUp|
EXPORT |SGD_Seek|
00000 AREA |.text| { |SGD_Seek| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$SGD_Seek|, PDATA, SELECTION=5, ASSOC=|.text| { |SGD_Seek| } ; comdat associative
|$T42239| DCD |$L42238|
DCD 0x40000200
; Function compile flags: /Ogsy
00000 AREA |.text| { |SGD_Seek| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |SGD_Seek| PROC
; 814 : {
00000 |$L42238|
00000 |$M42236|
; 815 : return (DWORD)(-1);
00000 e3e00000 mvn r0, #0
; 816 : }
00004 e12fff1e bx lr
00008 |$M42237|
ENDP ; |SGD_Seek|
EXPORT |HandleToFS|
00000 AREA |.text| { |HandleToFS| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$HandleToFS|, PDATA, SELECTION=5, ASSOC=|.text| { |HandleToFS| } ; comdat associative
|$T42254| DCD |$L42253|
DCD 0x40001201
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -