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

📄 atamain.cod

📁 PXA270的BSP
💻 COD
📖 第 1 页 / 共 5 页
字号:
; 508  :                 } 
; 509  :                 else 
; 510  :                 {
; 511  :                     //
; 512  :                     // Reset the root back... 
; 513  :                     //
; 514  :                     RETAILMSG(1,(TEXT("IDE reset-----\r\n")));

  0018c	e59f007c	 ldr         r0, [pc, #0x7C]
  00190	eb000000	 bl          NKDbgPrintfW

; 515  :                     g_pDiskRoot = pDisk->m_pNextDisk;

  00194	e595300c	 ldr         r3, [r5, #0xC]

; 516  :                     delete pDisk;

  00198	e3a01001	 mov         r1, #1
  0019c	e1a00005	 mov         r0, r5
  001a0	e586309c	 str         r3, [r6, #0x9C]
  001a4	e5953000	 ldr         r3, [r5]
  001a8	e5933000	 ldr         r3, [r3]
  001ac	e1a0e00f	 mov         lr, pc
  001b0	e12fff13	 bx          r3

; 517  :                     pDisk = NULL;

  001b4	e3a05000	 mov         r5, #0
  001b8		 |$L33092|

; 518  :                 }
; 519  :             }   
; 520  :         }
; 521  :         if (szDevKey)

  001b8	e3540000	 cmp         r4, #0

; 522  :             LocalFree( szDevKey); 

  001bc	11a00004	 movne       r0, r4
  001c0	1b000000	 blne        LocalFree
  001c4		 |$L33096|

; 523  :         RegCloseKey( hActiveKey);

  001c4	e59d0004	 ldr         r0, [sp, #4]
  001c8	eb000000	 bl          RegCloseKey
  001cc		 |$L33079|

; 524  :     }
; 525  : 
; 526  : 
; 527  :     LeaveCriticalSection( &g_csMain);

  001cc	e1a00006	 mov         r0, r6
  001d0	eb000000	 bl          LeaveCriticalSection

; 528  : 
; 529  : 	if ( NULL ==  pDisk )

  001d4	e3550000	 cmp         r5, #0

; 530  : 		{
; 531  : 		   RETAILMSG(1,(TEXT("DSK_Init failed-----\r\n")));

  001d8	059f002c	 ldreq       r0, [pc, #0x2C]
  001dc	0b000000	 bleq        NKDbgPrintfW

; 532  : 		}
; 533  : 
; 534  : 
; 535  :         RETAILMSG(1,(TEXT("------------\r\n")));

  001e0	e59f0020	 ldr         r0, [pc, #0x20]
  001e4	eb000000	 bl          NKDbgPrintfW

; 536  : 	 RETAILMSG(1,(TEXT(" >>>>>-----pDisk=0x%x\r\n"),pDisk));

  001e8	e59f0014	 ldr         r0, [pc, #0x14]
  001ec	e1a01005	 mov         r1, r5
  001f0	eb000000	 bl          NKDbgPrintfW

; 537  : 	
; 538  :     return ((DWORD)pDisk);

  001f4	e1a00005	 mov         r0, r5

; 539  : }

  001f8	e28dd00c	 add         sp, sp, #0xC
  001fc	e8bd41f0	 ldmia       sp!, {r4 - r8, lr}
  00200	e12fff1e	 bx          lr
  00204		 |$L33522|
  00204	00000000	 DCD         |??_C@_1DA@KGFEKKNL@?$AA?5?$AA?$DO?$AA?$DO?$AA?$DO?$AA?$DO?$AA?$DO?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AAp?$AAD?$AAi?$AAs?$AAk?$AA?$DN?$AA0?$AAx?$AA?$CF@|
  00208	00000000	 DCD         |??_C@_1BO@JFNKJLCM@?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?$AN?$AA?6?$AA?$AA@|
  0020c	00000000	 DCD         |??_C@_1CO@KOAMLMDG@?$AAD?$AAS?$AAK?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9@|
  00210	00000000	 DCD         |??_C@_1CC@CNGNFKEG@?$AAI?$AAD?$AAE?$AA?5?$AAr?$AAe?$AAs?$AAe?$AAt?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?$AN?$AA?6?$AA?$AA@|
  00214	00000000	 DCD         |??_C@_1EC@DIHLFDEB@?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9@|
  00218	00000000	 DCD         |??_C@_1CG@COODOPE@?$AAI?$AAD?$AAE?$AA?5?$AAD?$AAS?$AAK?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?9?$AA?9?$AA?9?$AA?9?$AA?$AN?$AA?6?$AA?$AA@|
  0021c	00000000	 DCD         |??_C@_1DO@OJOELLHC@?$AAI?$AAD?$AAE?$AA?5?$AAD?$AAS?$AAK?$AA_?$AAI?$AAn?$AAi?$AAt?$AA?5?$AAA?$AAc?$AAt?$AAi?$AAv?$AAe?$AAK@|
  00220	00000000	 DCD         |?g_csMain@@3UCRITICAL_SECTION@@A|
  00224		 |$M33518|

			 ENDP  ; |DSK_Init|

	EXPORT	|DSK_Deinit|
	EXPORT	|??_C@_1CK@GHKIIPKF@?$AAI?$AAD?$AAE?$AA?5?$AAD?$AAS?$AAK?$AA_?$AAD?$AAe?$AAi?$AAn?$AAi?$AAt?$AA?9?$AA?9?$AA?9?$AA?9?$AA?$AN?$AA?6@| [ DATA ] ; `string'

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

  00000			 AREA	 |.pdata$$DSK_Deinit|, PDATA, SELECTION=5, ASSOC=|.text| { |DSK_Deinit| } ; comdat associative
|$T33542| DCD	|$L33541|
	DCD	0x40002301

  00000			 AREA	 |.rdata| { |??_C@_1CK@GHKIIPKF@?$AAI?$AAD?$AAE?$AA?5?$AAD?$AAS?$AAK?$AA_?$AAD?$AAe?$AAi?$AAn?$AAi?$AAt?$AA?9?$AA?9?$AA?9?$AA?9?$AA?$AN?$AA?6@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CK@GHKIIPKF@?$AAI?$AAD?$AAE?$AA?5?$AAD?$AAS?$AAK?$AA_?$AAD?$AAe?$AAi?$AAn?$AAi?$AAt?$AA?9?$AA?9?$AA?9?$AA?9?$AA?$AN?$AA?6@| DCB "I"
	DCB	0x0, "D", 0x0, "E", 0x0, " ", 0x0, "D", 0x0, "S", 0x0, "K"
	DCB	0x0, "_", 0x0, "D", 0x0, "e", 0x0, "i", 0x0, "n", 0x0, "i"
	DCB	0x0, "t", 0x0, "-", 0x0, "-", 0x0, "-", 0x0, "-", 0x0, 0xd
	DCB	0x0, 0xa, 0x0, 0x0, 0x0			; `string'
; Function compile flags: /Ogsy

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

  00000		 |DSK_Deinit| PROC

; 562  : {   

  00000		 |$L33541|
  00000	e92d40f0	 stmdb       sp!, {r4 - r7, lr}
  00004		 |$M33539|
  00004	e1a07000	 mov         r7, r0

; 563  :     CDisk *pDiskPrev=NULL, *pDiskCur=g_pDiskRoot;

  00008	e59f5078	 ldr         r5, [pc, #0x78]

; 564  :     DEBUGMSG( ZONE_MAIN, (TEXT("ATAPI: DSK_Deinit pHandle = %08X\r\n"), pHandle));
; 565  : 
; 566  : 	RETAILMSG(1,(TEXT("IDE DSK_Deinit----\r\n")));

  0000c	e59f0070	 ldr         r0, [pc, #0x70]
  00010	e3a06000	 mov         r6, #0
  00014	e595409c	 ldr         r4, [r5, #0x9C]
  00018	eb000000	 bl          NKDbgPrintfW

; 567  : 	
; 568  :     EnterCriticalSection (&g_csMain);

  0001c	e1a00005	 mov         r0, r5
  00020	eb000000	 bl          EnterCriticalSection

; 569  :     while(pDiskCur) 

  00024	e3540000	 cmp         r4, #0
  00028	0a000010	 beq         |$L33529|
  0002c		 |$L33110|

; 570  :     {
; 571  :         if(pDiskCur == (CDisk *)pHandle) 

  0002c	e1540007	 cmp         r4, r7
  00030	0a000003	 beq         |$L33532|

; 572  :             break;
; 573  :         pDiskPrev = pDiskCur;
; 574  :         pDiskCur = pDiskCur->m_pNextDisk;

  00034	e594300c	 ldr         r3, [r4, #0xC]
  00038	e1a06004	 mov         r6, r4
  0003c	e1b04003	 movs        r4, r3
  00040	1afffff9	 bne         |$L33110|
  00044		 |$L33532|

; 575  :     }
; 576  :     if (pDiskCur) 

  00044	e3540000	 cmp         r4, #0
  00048	0a000008	 beq         |$L33529|

; 577  :     {
; 578  :         if (pDiskPrev) 

  0004c	e3560000	 cmp         r6, #0

; 579  :             pDiskPrev = pDiskCur->m_pNextDisk;
; 580  :         else 
; 581  :             g_pDiskRoot = pDiskCur->m_pNextDisk;

  00050	0594300c	 ldreq       r3, [r4, #0xC]

; 582  :         delete pDiskCur;    

  00054	e3a01001	 mov         r1, #1
  00058	e1a00004	 mov         r0, r4
  0005c	0585309c	 streq       r3, [r5, #0x9C]
  00060	e5943000	 ldr         r3, [r4]
  00064	e5933000	 ldr         r3, [r3]
  00068	e1a0e00f	 mov         lr, pc
  0006c	e12fff13	 bx          r3
  00070		 |$L33529|

; 583  :     }    
; 584  :     LeaveCriticalSection( &g_csMain);

  00070	e1a00005	 mov         r0, r5
  00074	eb000000	 bl          LeaveCriticalSection

; 585  :     return TRUE;

  00078	e3a00001	 mov         r0, #1

; 586  : }   

  0007c	e8bd40f0	 ldmia       sp!, {r4 - r7, lr}
  00080	e12fff1e	 bx          lr
  00084		 |$L33544|
  00084	00000000	 DCD         |??_C@_1CK@GHKIIPKF@?$AAI?$AAD?$AAE?$AA?5?$AAD?$AAS?$AAK?$AA_?$AAD?$AAe?$AAi?$AAn?$AAi?$AAt?$AA?9?$AA?9?$AA?9?$AA?9?$AA?$AN?$AA?6@|
  00088	00000000	 DCD         |?g_csMain@@3UCRITICAL_SECTION@@A|
  0008c		 |$M33540|

			 ENDP  ; |DSK_Deinit|

	EXPORT	|DSK_Open|
	EXPORT	|??_C@_1DI@GJBNBHPJ@?$AAD?$AAS?$AAK?$AA_?$AAO?$AAp?$AAe?$AAn?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9@| [ DATA ] ; `string'
; File c:\wince500\platform\bvdmain\drivers\atapi\diskmain.h

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

  00000			 AREA	 |.pdata$$DSK_Open|, PDATA, SELECTION=5, ASSOC=|.text| { |DSK_Open| } ; comdat associative
|$T33560| DCD	|$L33559|
	DCD	0x40000801

  00000			 AREA	 |.rdata| { |??_C@_1DI@GJBNBHPJ@?$AAD?$AAS?$AAK?$AA_?$AAO?$AAp?$AAe?$AAn?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DI@GJBNBHPJ@?$AAD?$AAS?$AAK?$AA_?$AAO?$AAp?$AAe?$AAn?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9@| DCB "D"
	DCB	0x0, "S", 0x0, "K", 0x0, "_", 0x0, "O", 0x0, "p", 0x0, "e"
	DCB	0x0, "n", 0x0, "-", 0x0, "-", 0x0, "-", 0x0, "-", 0x0, "-"
	DCB	0x0, "-", 0x0, "-", 0x0, "-", 0x0, "-", 0x0, "-", 0x0, "-"
	DCB	0x0, "-", 0x0, "-", 0x0, "-", 0x0, "-", 0x0, "-", 0x0, "-"
	DCB	0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0	; `string'
; Function compile flags: /Ogsy
; File c:\wince500\platform\bvdmain\drivers\atapi\atamain.cpp

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

  00000		 |DSK_Open| PROC

; 609  : {

  00000		 |$L33559|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M33557|
  00004	e1a04000	 mov         r4, r0

; 610  :     CDisk *pDisk = (CDisk *)pHandle;
; 611  : 	//liudiping
; 612  : 	RETAILMSG(1,(TEXT("DSK_Open-----------------\r\n")));

  00008	e59f000c	 ldr         r0, [pc, #0xC]
  0000c	eb000000	 bl          NKDbgPrintfW

; 613  : 	return (DWORD)pDisk ;

  00010	e1a00004	 mov         r0, r4

; 614  :     DEBUGMSG
; 615  :     ( 
; 616  :         ZONE_MAIN, 
; 617  :         (
; 618  :             TEXT("ATAPI:DSK_Open request Handle = %08 dwAccess=%08X dwShareMode=%08X\r\n"), 
; 619  :             pHandle, 
; 620  :             dwAccess, 
; 621  :             dwShareMode
; 622  :         )
; 623  :     );
; 624  : 
; 625  : 	RETAILMSG(1,(TEXT("IDE DSK_Open----\r\n")));
; 626  : 	
; 627  :     EnterCriticalSection( &g_csMain);
; 628  :     if (!AtaIsValidDisk(pDisk)) 
; 629  :     {
; 630  :         pDisk = NULL;
; 631  :     }
; 632  :     LeaveCriticalSection( &g_csMain);
; 633  : 
; 634  :     if (pDisk) 
; 635  :     {
; 636  :         pDisk->Open();
; 637  :     }
; 638  :     return (DWORD)pDisk;
; 639  : }

  00014	e8bd4010	 ldmia       sp!, {r4, lr}
  00018	e12fff1e	 bx          lr
  0001c		 |$L33562|
  0001c	00000000	 DCD         |??_C@_1DI@GJBNBHPJ@?$AAD?$AAS?$AAK?$AA_?$AAO?$AAp?$AAe?$AAn?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9?$AA?9@|
  00020		 |$M33558|

			 ENDP  ; |DSK_Open|

	EXPORT	|DSK_Close|
; File c:\wince500\platform\bvdmain\drivers\atapi\diskmain.h

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

  00000			 AREA	 |.pdata$$DSK_Close|, PDATA, SELECTION=5, ASSOC=|.text| { |DSK_Close| } ; comdat associative
|$T33577| DCD	|$L33576|
	DCD	0x40001501
; Function compile flags: /Ogsy
; File c:\wince500\platform\bvdmain\drivers\atapi\atamain.cpp

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

  00000		 |DSK_Close| PROC

; 654  : {

  00000		 |$L33576|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M33574|
  00004	e1a04000	 mov         r4, r0

; 655  :     CDisk *pDisk = (CDisk *)pHandle;
; 656  :     DEBUGMSG( ZONE_MAIN, (TEXT("ATAPI:DSK_Close request Handle = %08X\r\n"), pHandle));
; 657  :     EnterCriticalSection( &g_csMain);

  00008	e59f0040	 ldr         r0, [pc, #0x40]
  0000c	eb000000	 bl          EnterCriticalSection

; 658  :     if (!AtaIsValidDisk(pDisk)) 

  00010	e1a00004	 mov         r0, r4
  00014	eb000000	 bl          |?AtaIsValidDisk@@YAHPAVCDisk@@@Z|
  00018	e3500000	 cmp         r0, #0

; 659  :     {
; 660  :         pDisk = NULL;
; 661  :     }
; 662  :     LeaveCriticalSection( &g_csMain);

  0001c	e59f002c	 ldr         r0, [pc, #0x2C]
  00020	03a04000	 moveq       r4, #0
  00024	eb000000	 bl          LeaveCriticalSection

; 663  :     if (pDisk) 

  00028	e3540000	 cmp         r4, #0
  0002c	0a000004	 beq         |$L33565|

; 664  :     {
; 665  :         pDisk->Close();

  00030	e284002c	 add         r0, r4, #0x2C
  00034	eb000000	 bl          InterlockedDecrement

; 666  :     }
; 667  :     return (pDisk!= NULL);

  00038	e3a00001	 mov         r0, #1

; 668  : }   

  0003c	e8bd4010	 ldmia       sp!, {r4, lr}
  00040	e12fff1e	 bx          lr
  00044		 |$L33565|

; 666  :     }
; 667  :     return (pDisk!= NULL);

  00044	e3a00000	 mov         r0, #0

; 668  : }   

  00048	e8bd4010	 ldmia       sp!, {r4, lr}
  0004c	e12fff1e	 bx          lr
  00050		 |$L33579|
  00050	00000000	 DCD         |?g_csMain@@3UCRITICAL_SECTION@@A|
  00054		 |$M33575|

			 ENDP  ; |DSK_Close|

	EXPORT	|DSK_IOControl|

⌨️ 快捷键说明

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