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

📄 ep931xide.cod

📁 PXA270的BSP
💻 COD
📖 第 1 页 / 共 5 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4091 

	TTL	D:\WINCE500\PLATFORM\bvdmain\drivers\atapi\.\ep931xide.cpp
	CODE32

  00000			 AREA	 |.drectve|, DRECTVE
	DCB	"-defaultlib:coredll.lib "
	DCB	"-defaultlib:corelibc.lib "

	EXPORT	|ResetEvent|
	IMPORT	|EventModify|
; File d:\wince500\public\common\sdk\inc\kfuncs.h

  00000			 AREA	 |.text| { |ResetEvent| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$ResetEvent|, PDATA, SELECTION=5, ASSOC=|.text| { |ResetEvent| } ; comdat associative
|$T33700| DCD	|$L33699|
	DCD	0x40000501
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |ResetEvent| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |ResetEvent| PROC

; 172  : _inline BOOL ResetEvent(HANDLE h) {

  00000		 |$L33699|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33697|

; 173  : 	return EventModify(h,EVENT_RESET);

  00004	e3a01002	 mov         r1, #2
  00008	eb000000	 bl          EventModify

; 174  : }

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$M33698|

			 ENDP  ; |ResetEvent|

	EXPORT	|GetCurrentThread|

  00000			 AREA	 |.text| { |GetCurrentThread| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$GetCurrentThread|, PDATA, SELECTION=5, ASSOC=|.text| { |GetCurrentThread| } ; comdat associative
|$T33709| DCD	|$L33708|
	DCD	0x40000200
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |GetCurrentThread| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |GetCurrentThread| PROC

; 300  : _inline HANDLE GetCurrentThread(void) {

  00000		 |$L33708|
  00000		 |$M33706|

; 301  : 	return ((HANDLE)(SH_CURTHREAD+SYS_HANDLE_BASE));

  00000	e3a00041	 mov         r0, #0x41

; 302  : }

  00004	e12fff1e	 bx          lr
  00008		 |$M33707|

			 ENDP  ; |GetCurrentThread|

	EXPORT	|??0CDisk@@QAA@PAUHKEY__@@@Z|		; CDisk::CDisk
	EXPORT	|?TakeCS@CDisk@@UAAXXZ|			; CDisk::TakeCS
	EXPORT	|?ReleaseCS@CDisk@@UAAXXZ|		; CDisk::ReleaseCS
	EXPORT	|??_7CDisk@@6B@| [ DATA ]		; CDisk::`vftable'
	EXPORT	|??_GCDisk@@UAAPAXI@Z|			; CDisk::`scalar deleting destructor'
	IMPORT	|_purecall|
	IMPORT	|?Init@CDisk@@UAAHPAUHKEY__@@@Z|	; CDisk::Init
	IMPORT	|?GetDeviceInfo@CDisk@@UAAKPAU_IOREQ@@@Z| ; CDisk::GetDeviceInfo
	IMPORT	|InitializeCriticalSection|
	IMPORT	|?ReadCdRomDMA@CDisk@@UAAKKKGKPAU_SGX_BUF@@@Z| ; CDisk::ReadCdRomDMA
	IMPORT	|??_ECDisk@@UAAPAXI@Z|, WEAK |??_GCDisk@@UAAPAXI@Z| ; CDisk::`vector deleting destructor', CDisk::`scalar deleting destructor'
	IMPORT	|memset|
; File d:\wince500\platform\bvdmain\drivers\atapi\diskmain.h

  00000			 AREA	 |.text| { |??0CDisk@@QAA@PAUHKEY__@@@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$??0CDisk@@QAA@PAUHKEY__@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |??0CDisk@@QAA@PAUHKEY__@@@Z| } ; comdat associative
|$T33721| DCD	|$L33720|
	DCD	0x40003701

  00000			 AREA	 |.rdata| { |??_7CDisk@@6B@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_7CDisk@@6B@| DCD |??_ECDisk@@UAAPAXI@Z|		; CDisk::`vftable'
	DCD	|?Init@CDisk@@UAAHPAUHKEY__@@@Z|
	DCD	|_purecall|
	DCD	|?GetDeviceInfo@CDisk@@UAAKPAU_IOREQ@@@Z|
	DCD	|?ReadCdRomDMA@CDisk@@UAAKKKGKPAU_SGX_BUF@@@Z|
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|?TakeCS@CDisk@@UAAXXZ|
	DCD	|?ReleaseCS@CDisk@@UAAXXZ|
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|_purecall|
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |??0CDisk@@QAA@PAUHKEY__@@@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |??0CDisk@@QAA@PAUHKEY__@@@Z| PROC	; CDisk::CDisk

; 261  :     {

  00000		 |$L33720|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M33718|
  00004	e1a04000	 mov         r4, r0
  00008	e59f30c8	 ldr         r3, [pc, #0xC8]
  0000c	e3a02002	 mov         r2, #2
  00010	e3a0e004	 mov         lr, #4
  00014	e5843000	 str         r3, [r4]
  00018	e3a03000	 mov         r3, #0

; 262  :         InitializeCriticalSection( &m_csDisk);

  0001c	e2840018	 add         r0, r4, #0x18
  00020	e5843004	 str         r3, [r4, #4]
  00024	e584300c	 str         r3, [r4, #0xC]
  00028	e584302c	 str         r3, [r4, #0x2C]
  0002c	e5843030	 str         r3, [r4, #0x30]
  00030	e5843644	 str         r3, [r4, #0x644]
  00034	e5843648	 str         r3, [r4, #0x648]
  00038	e584364c	 str         r3, [r4, #0x64C]
  0003c	e5843650	 str         r3, [r4, #0x650]
  00040	e5843654	 str         r3, [r4, #0x654]
  00044	e5843658	 str         r3, [r4, #0x658]
  00048	e584365c	 str         r3, [r4, #0x65C]
  0004c	e5843684	 str         r3, [r4, #0x684]
  00050	e5843688	 str         r3, [r4, #0x688]
  00054	e584368c	 str         r3, [r4, #0x68C]
  00058	e5843690	 str         r3, [r4, #0x690]
  0005c	e5843694	 str         r3, [r4, #0x694]
  00060	e5843698	 str         r3, [r4, #0x698]
  00064	e584369c	 str         r3, [r4, #0x69C]
  00068	e58436a0	 str         r3, [r4, #0x6A0]
  0006c	e58436a4	 str         r3, [r4, #0x6A4]
  00070	e58436a8	 str         r3, [r4, #0x6A8]
  00074	e58436ac	 str         r3, [r4, #0x6AC]
  00078	e58436b0	 str         r3, [r4, #0x6B0]
  0007c	e58436b4	 str         r3, [r4, #0x6B4]
  00080	e58436b8	 str         r3, [r4, #0x6B8]
  00084	e5841010	 str         r1, [r4, #0x10]
  00088	e58426bc	 str         r2, [r4, #0x6BC]
  0008c	e584e6c0	 str         lr, [r4, #0x6C0]
  00090	eb000000	 bl          InitializeCriticalSection

; 263  :         memset( &m_Id, 0, sizeof(IDENTIFY_DATA));

  00094	e2843b01	 add         r3, r4, #1, 22
  00098	e2830044	 add         r0, r3, #0x44
  0009c	e3a02c02	 mov         r2, #2, 24
  000a0	e3a01000	 mov         r1, #0
  000a4	eb000000	 bl          memset

; 264  :         memset( &m_DiskInfo, 0, sizeof(DISK_INFO));

  000a8	e3a02018	 mov         r2, #0x18
  000ac	e3a01000	 mov         r1, #0
  000b0	e2840e66	 add         r0, r4, #0x66, 28
  000b4	eb000000	 bl          memset

; 265  :         memset( &m_InqData, 0, sizeof(INQUIRY_DATA));

  000b8	e2843c06	 add         r3, r4, #6, 24
  000bc	e28300c4	 add         r0, r3, #0xC4
  000c0	e3a02060	 mov         r2, #0x60
  000c4	e3a01000	 mov         r1, #0
  000c8	eb000000	 bl          memset

; 266  :     }

  000cc	e1a00004	 mov         r0, r4
  000d0	e8bd4010	 ldmia       sp!, {r4, lr}
  000d4	e12fff1e	 bx          lr
  000d8		 |$L33723|
  000d8	00000000	 DCD         |??_7CDisk@@6B@|
  000dc		 |$M33719|

			 ENDP  ; |??0CDisk@@QAA@PAUHKEY__@@@Z|, CDisk::CDisk

	EXPORT	|??1CDisk@@UAA@XZ|			; CDisk::~CDisk
	IMPORT	|RegCloseKey|
	IMPORT	|DeleteCriticalSection|

  00000			 AREA	 |.text| { |??1CDisk@@UAA@XZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$??1CDisk@@UAA@XZ|, PDATA, SELECTION=5, ASSOC=|.text| { |??1CDisk@@UAA@XZ| } ; comdat associative
|$T33730| DCD	|$L33729|
	DCD	0x40000d01
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |??1CDisk@@UAA@XZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |??1CDisk@@UAA@XZ| PROC		; CDisk::~CDisk

; 268  :     {

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

; 269  :         if (m_hDevKey) 

  00008	e5942010	 ldr         r2, [r4, #0x10]
  0000c	e59f301c	 ldr         r3, [pc, #0x1C]
  00010	e3520000	 cmp         r2, #0

; 270  :             RegCloseKey( m_hDevKey);

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

; 271  :         DeleteCriticalSection( &m_csDisk);            

  00020	e2840018	 add         r0, r4, #0x18
  00024	eb000000	 bl          DeleteCriticalSection

; 272  :     }

  00028	e8bd4010	 ldmia       sp!, {r4, lr}
  0002c	e12fff1e	 bx          lr
  00030		 |$L33732|
  00030	00000000	 DCD         |??_7CDisk@@6B@|
  00034		 |$M33728|

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

	IMPORT	|EnterCriticalSection|

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

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

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

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

; 357  :     { 

  00000		 |$L33738|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33736|

; 358  :         EnterCriticalSection( &m_csDisk); 

  00004	e2800018	 add         r0, r0, #0x18
  00008	eb000000	 bl          EnterCriticalSection

; 359  :     }

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$M33737|

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

	IMPORT	|LeaveCriticalSection|

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

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

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

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

; 361  :     { 

  00000		 |$L33746|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33744|

; 362  :         LeaveCriticalSection( &m_csDisk); 

  00004	e2800018	 add         r0, r0, #0x18
  00008	eb000000	 bl          LeaveCriticalSection

; 363  :     }

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$M33745|

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

	IMPORT	|??3@YAXPAX@Z|				; operator delete

  00000			 AREA	 |.text| { |??_GCDisk@@UAAPAXI@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$??_GCDisk@@UAAPAXI@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |??_GCDisk@@UAAPAXI@Z| } ; comdat associative
|$T33762| DCD	|$L33761|
	DCD	0x40001201
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |??_GCDisk@@UAAPAXI@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |??_GCDisk@@UAAPAXI@Z| PROC		; CDisk::`scalar deleting destructor'
  00000		 |$L33761|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M33759|
  00004	e1a05001	 mov         r5, r1
  00008	e1a04000	 mov         r4, r0
  0000c	e5942010	 ldr         r2, [r4, #0x10]
  00010	e59f302c	 ldr         r3, [pc, #0x2C]
  00014	e3520000	 cmp         r2, #0
  00018	11a00002	 movne       r0, r2
  0001c	e5843000	 str         r3, [r4]
  00020	1b000000	 blne        RegCloseKey
  00024	e2840018	 add         r0, r4, #0x18
  00028	eb000000	 bl          DeleteCriticalSection
  0002c	e3150001	 tst         r5, #1
  00030	11a00004	 movne       r0, r4
  00034	1b000000	 blne        |??3@YAXPAX@Z|
  00038	e1a00004	 mov         r0, r4
  0003c	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  00040	e12fff1e	 bx          lr
  00044		 |$L33764|
  00044	00000000	 DCD         |??_7CDisk@@6B@|
  00048		 |$M33760|

			 ENDP  ; |??_GCDisk@@UAAPAXI@Z|, CDisk::`scalar deleting destructor'

	EXPORT	|?ATAReadRegister@@YAKK@Z|		; ATAReadRegister
; File d:\wince500\platform\bvdmain\drivers\atapi\ep931xide.cpp

  00000			 AREA	 |.text| { |?ATAReadRegister@@YAKK@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?ATAReadRegister@@YAKK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?ATAReadRegister@@YAKK@Z| } ; comdat associative
|$T33776| DCD	|$L33775|
	DCD	0x40001401
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?ATAReadRegister@@YAKK@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?ATAReadRegister@@YAKK@Z| PROC	; ATAReadRegister

; 93   : {

  00000		 |$L33775|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33773|

; 94   : 
; 95   :     ULONG uiValue;
; 96   :     register ULONG ulControl;
; 97   :     
; 98   : 
; 99   :     //
; 100  :     // Setup the control register for a read.
; 101  :     //
; 102  :     *IDE_CTRL = ulControl = IDE_CTRL_DIOR | IDE_CTRL_DIOW | ulRegister;

  00004	e3a0e20b	 mov         lr, #0xB, 4
  00008	e38ee80a	 orr         lr, lr, #0xA, 16
  0000c	e3803060	 orr         r3, r0, #0x60
  00010	e58e3000	 str         r3, [lr]

; 103  : 
; 104  :     //
; 105  :     // See Section 10.2.2 of the ATA/ATAPI Specification Version 5 for Delay
; 106  :     // Information.

⌨️ 快捷键说明

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