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

📄 diskmain.cod

📁 windows CE 的BSP开发包.包含众多的驱动程序和OAL层的开发代码
💻 COD
📖 第 1 页 / 共 5 页
字号:
  00000		 |??1CDisk@@UAA@XZ| PROC		; CDisk::~CDisk

; 92   : {

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

; 93   :     if (m_hDevKey) {

  00008	e5942480	 ldr         r2, [r4, #0x480]
  0000c	e59f3048	 ldr         r3, [pc, #0x48]
  00010	e3520000	 cmp         r2, #0

; 94   :         RegCloseKey(m_hDevKey);

  00014	11a00002	 movne       r0, r2
  00018	e5843000	 str         r3, [r4]
  0001c	1b000000	 blne        RegCloseKey

; 95   :     }
; 96   : 
; 97   :     if(m_pDiskPower != NULL) {

  00020	e59436d4	 ldr         r3, [r4, #0x6D4]
  00024	e1b00003	 movs        r0, r3

; 98   :         delete m_pDiskPower;

  00028	15903000	 ldrne       r3, [r0]
  0002c	13a01001	 movne       r1, #1
  00030	15933000	 ldrne       r3, [r3]
  00034	11a0e00f	 movne       lr, pc
  00038	112fff13	 bxne        r3

; 99   :     }
; 100  : 
; 101  :     DeleteCriticalSection(&m_csDisk);

  0003c	e2840054	 add         r0, r4, #0x54
  00040	eb000000	 bl          DeleteCriticalSection

; 102  : 
; 103  :     // deallocate double buffer, if present
; 104  :     if (NULL != m_rgbDoubleBuffer) {

  00044	e594304c	 ldr         r3, [r4, #0x4C]
  00048	e3530000	 cmp         r3, #0

; 105  :         LocalFree((HLOCAL)m_rgbDoubleBuffer);

  0004c	11a00003	 movne       r0, r3
  00050	1b000000	 blne        LocalFree

; 106  :     }
; 107  : }

  00054	e8bd4010	 ldmia       sp!, {r4, lr}
  00058	e12fff1e	 bx          lr
  0005c		 |$L33091|
  0005c	00000000	 DCD         |??_7CDisk@@6B@|
  00060		 |$M33087|

			 ENDP  ; |??1CDisk@@UAA@XZ|, CDisk::~CDisk

	EXPORT	|?StallExecution@CDisk@@QAAXK@Z|	; CDisk::StallExecution
	IMPORT	|StallExecution|
	IMPORT	|Sleep|

  00000			 AREA	 |.text| { |?StallExecution@CDisk@@QAAXK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?StallExecution@CDisk@@QAAXK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?StallExecution@CDisk@@QAAXK@Z| } ; comdat associative
|$T33099| DCD	|$L33098|
	DCD	0x40001201
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?StallExecution@CDisk@@QAAXK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?StallExecution@CDisk@@QAAXK@Z| PROC	; CDisk::StallExecution

; 121  : {

  00000		 |$L33098|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33096|

; 122  :     if ((dwTime >= 100) && (m_dwDeviceFlags & DFLAGS_DEVICE_CDROM)) {

  00004	e3510064	 cmp         r1, #0x64
  00008	3a000008	 bcc         |$L31960|
  0000c	e5903690	 ldr         r3, [r0, #0x690]
  00010	e3130301	 tst         r3, #1, 6
  00014	0a000005	 beq         |$L31960|

; 123  :         Sleep (dwTime / 100);

  00018	e59f3024	 ldr         r3, [pc, #0x24]
  0001c	e0803391	 umull       r3, r0, r1, r3
  00020	e1a002a0	 mov         r0, r0, lsr #5
  00024	eb000000	 bl          Sleep

; 127  :     }
; 128  : }

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

; 124  :     }
; 125  :     else {
; 126  :         ::StallExecution(dwTime * 10);

  00030	e0810101	 add         r0, r1, r1, lsl #2
  00034	e1a00080	 mov         r0, r0, lsl #1
  00038	eb000000	 bl          StallExecution

; 127  :     }
; 128  : }

  0003c	e49de004	 ldr         lr, [sp], #4
  00040	e12fff1e	 bx          lr
  00044		 |$L33101|
  00044	51eb851f	 DCD         0x51eb851f
  00048		 |$M33097|

			 ENDP  ; |?StallExecution@CDisk@@QAAXK@Z|, CDisk::StallExecution

	IMPORT	|EnterCriticalSection|

  00000			 AREA	 |.text| { |?TakeCS@CDisk@@UAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?TakeCS@CDisk@@UAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?TakeCS@CDisk@@UAAXXZ| } ; comdat associative
|$T33108| DCD	|$L33107|
	DCD	0x40000501
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?TakeCS@CDisk@@UAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?TakeCS@CDisk@@UAAXXZ| PROC		; CDisk::TakeCS

; 133  : void CDisk::TakeCS()                    { EnterCriticalSection(&m_csDisk); }

  00000		 |$L33107|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33105|
  00004	e2800054	 add         r0, r0, #0x54
  00008	eb000000	 bl          EnterCriticalSection
  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$M33106|

			 ENDP  ; |?TakeCS@CDisk@@UAAXXZ|, CDisk::TakeCS

	IMPORT	|LeaveCriticalSection|

  00000			 AREA	 |.text| { |?ReleaseCS@CDisk@@UAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?ReleaseCS@CDisk@@UAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?ReleaseCS@CDisk@@UAAXXZ| } ; comdat associative
|$T33116| DCD	|$L33115|
	DCD	0x40000501
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?ReleaseCS@CDisk@@UAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?ReleaseCS@CDisk@@UAAXXZ| PROC	; CDisk::ReleaseCS

; 134  : void CDisk::ReleaseCS()                 { LeaveCriticalSection(&m_csDisk); }

  00000		 |$L33115|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33113|
  00004	e2800054	 add         r0, r0, #0x54
  00008	eb000000	 bl          LeaveCriticalSection
  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$M33114|

			 ENDP  ; |?ReleaseCS@CDisk@@UAAXXZ|, CDisk::ReleaseCS

	EXPORT	|?Open@CDisk@@QAAXXZ|			; CDisk::Open
	IMPORT	|InterlockedIncrement|

  00000			 AREA	 |.text| { |?Open@CDisk@@QAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?Open@CDisk@@QAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?Open@CDisk@@QAAXXZ| } ; comdat associative
|$T33124| DCD	|$L33123|
	DCD	0x40000501
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?Open@CDisk@@QAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?Open@CDisk@@QAAXXZ| PROC		; CDisk::Open

; 135  : void CDisk::Open()                      { InterlockedIncrement((LONG *)&m_dwOpenCount); }

  00000		 |$L33123|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33121|
  00004	e2800068	 add         r0, r0, #0x68
  00008	eb000000	 bl          InterlockedIncrement
  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$M33122|

			 ENDP  ; |?Open@CDisk@@QAAXXZ|, CDisk::Open

	EXPORT	|?Close@CDisk@@QAAXXZ|			; CDisk::Close
	IMPORT	|InterlockedDecrement|

  00000			 AREA	 |.text| { |?Close@CDisk@@QAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?Close@CDisk@@QAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?Close@CDisk@@QAAXXZ| } ; comdat associative
|$T33132| DCD	|$L33131|
	DCD	0x40000501
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?Close@CDisk@@QAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?Close@CDisk@@QAAXXZ| PROC		; CDisk::Close

; 136  : void CDisk::Close()                     { InterlockedDecrement((LONG *)&m_dwOpenCount); }

  00000		 |$L33131|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33129|
  00004	e2800068	 add         r0, r0, #0x68
  00008	eb000000	 bl          InterlockedDecrement
  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$M33130|

			 ENDP  ; |?Close@CDisk@@QAAXXZ|, CDisk::Close

	EXPORT	|?IsAtapiDevice@CDisk@@QAAHXZ|		; CDisk::IsAtapiDevice

  00000			 AREA	 |.text| { |?IsAtapiDevice@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?IsAtapiDevice@CDisk@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?IsAtapiDevice@CDisk@@QAAHXZ| } ; comdat associative
|$T33142| DCD	|$L33141|
	DCD	0x40000200
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?IsAtapiDevice@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?IsAtapiDevice@CDisk@@QAAHXZ| PROC	; CDisk::IsAtapiDevice

; 137  : BOOL CDisk::IsAtapiDevice()             { return m_fAtapiDevice; }

  00000		 |$L33141|
  00000		 |$M33139|
  00000	e5900698	 ldr         r0, [r0, #0x698]
  00004	e12fff1e	 bx          lr
  00008		 |$M33140|

			 ENDP  ; |?IsAtapiDevice@CDisk@@QAAHXZ|, CDisk::IsAtapiDevice

	EXPORT	|?IsCDRomDevice@CDisk@@QAAHXZ|		; CDisk::IsCDRomDevice

  00000			 AREA	 |.text| { |?IsCDRomDevice@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?IsCDRomDevice@CDisk@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?IsCDRomDevice@CDisk@@QAAHXZ| } ; comdat associative
|$T33154| DCD	|$L33153|
	DCD	0x40000800
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?IsCDRomDevice@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?IsCDRomDevice@CDisk@@QAAHXZ| PROC	; CDisk::IsCDRomDevice

; 138  : BOOL CDisk::IsCDRomDevice()             { return (((m_Id.GeneralConfiguration >> 8) & 0x1f) == ATA_IDDEVICE_CDROM); }

  00000		 |$L33153|
  00000		 |$M33151|
  00000	e5d02490	 ldrb        r2, [r0, #0x490]
  00004	e5d03491	 ldrb        r3, [r0, #0x491]
  00008	e1823403	 orr         r3, r2, r3, lsl #8
  0000c	e2033c1f	 and         r3, r3, #0x1F, 24
  00010	e3530c05	 cmp         r3, #5, 24
  00014	03a00001	 moveq       r0, #1
  00018	13a00000	 movne       r0, #0
  0001c	e12fff1e	 bx          lr
  00020		 |$M33152|

			 ENDP  ; |?IsCDRomDevice@CDisk@@QAAHXZ|, CDisk::IsCDRomDevice

	EXPORT	|?IsDVDROMDevice@CDisk@@QAAHXZ|		; CDisk::IsDVDROMDevice

  00000			 AREA	 |.text| { |?IsDVDROMDevice@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?IsDVDROMDevice@CDisk@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?IsDVDROMDevice@CDisk@@QAAHXZ| } ; comdat associative
|$T33163| DCD	|$L33162|
	DCD	0x40000200
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?IsDVDROMDevice@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?IsDVDROMDevice@CDisk@@QAAHXZ| PROC	; CDisk::IsDVDROMDevice

; 139  : BOOL CDisk::IsDVDROMDevice()            { return TRUE; }

  00000		 |$L33162|
  00000		 |$M33160|
  00000	e3a00001	 mov         r0, #1
  00004	e12fff1e	 bx          lr
  00008		 |$M33161|

			 ENDP  ; |?IsDVDROMDevice@CDisk@@QAAHXZ|, CDisk::IsDVDROMDevice

	EXPORT	|?IsDiskDevice@CDisk@@QAAHXZ|		; CDisk::IsDiskDevice

  00000			 AREA	 |.text| { |?IsDiskDevice@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?IsDiskDevice@CDisk@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?IsDiskDevice@CDisk@@QAAHXZ| } ; comdat associative
|$T33175| DCD	|$L33174|
	DCD	0x40000700
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?IsDiskDevice@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?IsDiskDevice@CDisk@@QAAHXZ| PROC	; CDisk::IsDiskDevice

; 140  : BOOL CDisk::IsDiskDevice()              { return (((m_Id.GeneralConfiguration >> 8) & 0x1f) == ATA_IDDEVICE_DISK); }

  00000		 |$L33174|
  00000		 |$M33172|
  00000	e5d02490	 ldrb        r2, [r0, #0x490]
  00004	e5d03491	 ldrb        r3, [r0, #0x491]
  00008	e1823403	 orr         r3, r2, r3, lsl #8
  0000c	e3130c1f	 tst         r3, #0x1F, 24
  00010	03a00001	 moveq       r0, #1
  00014	13a00000	 movne       r0, #0
  00018	e12fff1e	 bx          lr
  0001c		 |$M33173|

			 ENDP  ; |?IsDiskDevice@CDisk@@QAAHXZ|, CDisk::IsDiskDevice

	EXPORT	|?IsRemoveableDevice@CDisk@@QAAHXZ|	; CDisk::IsRemoveableDevice

  00000			 AREA	 |.text| { |?IsRemoveableDevice@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?IsRemoveableDevice@CDisk@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?IsRemoveableDevice@CDisk@@QAAHXZ| } ; comdat associative
|$T33185| DCD	|$L33184|
	DCD	0x40000500
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?IsRemoveableDevice@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?IsRemoveableDevice@CDisk@@QAAHXZ| PROC ; CDisk::IsRemoveableDevice

; 141  : BOOL CDisk::IsRemoveableDevice()        { return (m_Id.GeneralConfiguration & IDE_IDDATA_REMOVABLE); }

  00000		 |$L33184|
  00000		 |$M33182|
  00000	e5d02490	 ldrb        r2, [r0, #0x490]
  00004	e5d03491	 ldrb        r3, [r0, #0x491]
  00008	e1823403	 orr         r3, r2, r3, lsl #8
  0000c	e2030080	 and         r0, r3, #0x80
  00010	e12fff1e	 bx          lr
  00014		 |$M33183|

			 ENDP  ; |?IsRemoveableDevice@CDisk@@QAAHXZ|, CDisk::IsRemoveableDevice

	EXPORT	|?IsDMASupported@CDisk@@QAAHXZ|		; CDisk::IsDMASupported

⌨️ 快捷键说明

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