📄 ep931xide.cod
字号:
; 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 + -