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

📄 smsgendrv.cod

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