📄 diskmain.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4091
TTL D:\WINCE500\PLATFORM\smdk2440\DRIVERS\atapi\.\diskmain.cpp
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
00000 AREA |.bss|, NOINIT
|g_hTestUnitReadyThread| % 0x4
EXPORT |??0CDisk@@QAA@XZ| ; CDisk::CDisk
EXPORT |?ConfigureRegisterBlock@CDisk@@UAAXK@Z| ; CDisk::ConfigureRegisterBlock
EXPORT |?Init@CDisk@@UAAHPAUHKEY__@@@Z| ; CDisk::Init
EXPORT |?InitController@CDisk@@UAAHH@Z| ; CDisk::InitController
EXPORT |?GetDeviceInfo@CDisk@@UAAKPAU_IOREQ@@@Z| ; CDisk::GetDeviceInfo
EXPORT |?MainIoctl@CDisk@@UAAKPAU_IOREQ@@@Z| ; CDisk::MainIoctl
EXPORT |?ReadWriteDiskDMA@CDisk@@UAAKPAU_IOREQ@@H@Z| ; CDisk::ReadWriteDiskDMA
EXPORT |?GetDiskPowerInterface@CDisk@@UAAPAVCDiskPower@@XZ| ; CDisk::GetDiskPowerInterface
EXPORT |?SetDiskPowerState@CDisk@@UAAHW4_CEDEVICE_POWER_STATE@@@Z| ; CDisk::SetDiskPowerState
EXPORT |?WakeUp@CDisk@@UAAHXZ| ; CDisk::WakeUp
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 |?WaitForDRQ@CDisk@@UAAHXZ| ; CDisk::WaitForDRQ
IMPORT |?WaitForDisc@CDisk@@UAAHEKK@Z| ; CDisk::WaitForDisc
IMPORT |??_ECDisk@@UAAPAXI@Z|, WEAK |??_GCDisk@@UAAPAXI@Z| ; CDisk::`vector deleting destructor', CDisk::`scalar deleting destructor'
00000 AREA |.pdata|, PDATA
|$T32912| DCD |$L32911|
DCD 0x40000e04
; File d:\wince500\platform\smdk2440\drivers\atapi\diskmain.cpp
00000 AREA |.rdata| { |??_7CDisk@@6B@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_7CDisk@@6B@| DCD |??_ECDisk@@UAAPAXI@Z| ; CDisk::`vftable'
DCD |?ConfigureRegisterBlock@CDisk@@UAAXK@Z|
DCD |?Init@CDisk@@UAAHPAUHKEY__@@@Z|
DCD |?InitController@CDisk@@UAAHH@Z|
DCD |?GetDeviceInfo@CDisk@@UAAKPAU_IOREQ@@@Z|
DCD |?MainIoctl@CDisk@@UAAKPAU_IOREQ@@@Z|
DCD |?WaitForDRQ@CDisk@@UAAHXZ|
DCD |?WaitForDisc@CDisk@@UAAHEKK@Z|
DCD |?ReadWriteDiskDMA@CDisk@@UAAKPAU_IOREQ@@H@Z|
DCD |?GetDiskPowerInterface@CDisk@@UAAPAVCDiskPower@@XZ|
DCD |?SetDiskPowerState@CDisk@@UAAHW4_CEDEVICE_POWER_STATE@@@Z|
DCD |?WakeUp@CDisk@@UAAHXZ|
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: /Odt
00000 AREA |.text|, CODE, ARM
00000 |??0CDisk@@QAA@XZ| PROC ; CDisk::CDisk
; 36 : {
00000 |$L32911|
00000 e1a0c00d mov r12, sp
00004 e92d0001 stmdb sp!, {r0}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd004 sub sp, sp, #4
00010 |$M32909|
00010 e59f201c ldr r2, [pc, #0x1C]
00014 e59d300c ldr r3, [sp, #0xC]
00018 e5832000 str r2, [r3]
; 37 : // empty
; 38 : }
0001c e59d300c ldr r3, [sp, #0xC]
00020 e58d3000 str r3, [sp]
00024 e59d0000 ldr r0, [sp]
00028 e28dd004 add sp, sp, #4
0002c e89d6000 ldmia sp, {sp, lr}
00030 e12fff1e bx lr
00034 |$L32913|
00034 00000000 DCD |??_7CDisk@@6B@|
00038 |$M32910|
ENDP ; |??0CDisk@@QAA@XZ|, CDisk::CDisk
EXPORT |??1CDisk@@UAA@XZ| ; CDisk::~CDisk
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
|$T32919| DCD |$L32918|
DCD 0x40001104
; Function compile flags: /Odt
00000 AREA |.text| { |??_GCDisk@@UAAPAXI@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |??_GCDisk@@UAAPAXI@Z| PROC ; CDisk::`scalar deleting destructor'
00000 |$L32918|
00000 e1a0c00d mov r12, sp
00004 e92d0003 stmdb sp!, {r0, r1}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd004 sub sp, sp, #4
00010 |$M32916|
00010 e59d000c ldr r0, [sp, #0xC]
00014 eb000000 bl |??1CDisk@@UAA@XZ|
00018 e59d3010 ldr r3, [sp, #0x10]
0001c e3130001 tst r3, #1
00020 0a000001 beq |$L31947|
00024 e59d000c ldr r0, [sp, #0xC]
00028 eb000000 bl |??3@YAXPAX@Z|
0002c |$L31947|
0002c e59d300c ldr r3, [sp, #0xC]
00030 e58d3000 str r3, [sp]
00034 e59d0000 ldr r0, [sp]
00038 e28dd004 add sp, sp, #4
0003c e89d6000 ldmia sp, {sp, lr}
00040 e12fff1e bx lr
00044 |$M32917|
ENDP ; |??_GCDisk@@UAAPAXI@Z|, CDisk::`scalar deleting destructor'
EXPORT |??0CDisk@@QAA@PAUHKEY__@@@Z| ; CDisk::CDisk
IMPORT |memset|
IMPORT |InitializeCriticalSection|
00008 AREA |.pdata|, PDATA
|$T32927| DCD |$L32926|
DCD 0x40007c04
; Function compile flags: /Odt
00038 AREA |.text|, CODE, ARM
00038 |??0CDisk@@QAA@PAUHKEY__@@@Z| PROC ; CDisk::CDisk
; 51 : {
00038 |$L32926|
00038 e1a0c00d mov r12, sp
0003c e92d0003 stmdb sp!, {r0, r1}
00040 e92d5000 stmdb sp!, {r12, lr}
00044 e24dd004 sub sp, sp, #4
00048 |$M32924|
00048 e59f21d4 ldr r2, [pc, #0x1D4]
0004c e59d300c ldr r3, [sp, #0xC]
00050 e5832000 str r2, [r3]
; 52 : m_dwDeviceFlags = 0;
00054 e59d300c ldr r3, [sp, #0xC]
00058 e2832e69 add r2, r3, #0x69, 28
0005c e3a03000 mov r3, #0
00060 e5823000 str r3, [r2]
; 53 : m_pNextDisk = NULL;
00064 e59d300c ldr r3, [sp, #0xC]
00068 e283206c add r2, r3, #0x6C
0006c e3a03000 mov r3, #0
00070 e5823000 str r3, [r2]
; 54 : m_pATAReg = NULL;
00074 e59d300c ldr r3, [sp, #0xC]
00078 e2832030 add r2, r3, #0x30
0007c e3a03000 mov r3, #0
00080 e5823000 str r3, [r2]
; 55 : m_pATARegAlt = NULL;
00084 e59d300c ldr r3, [sp, #0xC]
00088 e2832034 add r2, r3, #0x34
0008c e3a03000 mov r3, #0
00090 e5823000 str r3, [r2]
; 56 : m_dwDevice = 0;
00094 e59d300c ldr r3, [sp, #0xC]
00098 e2833b01 add r3, r3, #1, 22
0009c e2832084 add r2, r3, #0x84
000a0 e3a03000 mov r3, #0
000a4 e5823000 str r3, [r2]
; 57 : m_hDevKey = hKey;
000a8 e59d300c ldr r3, [sp, #0xC]
000ac e2832d12 add r2, r3, #0x12, 26
000b0 e59d3010 ldr r3, [sp, #0x10]
000b4 e5823000 str r3, [r2]
; 58 : m_dwDeviceId = 0;
000b8 e59d300c ldr r3, [sp, #0xC]
000bc e2833b01 add r3, r3, #1, 22
000c0 e2832088 add r2, r3, #0x88
000c4 e3a03000 mov r3, #0
000c8 e5823000 str r3, [r2]
; 59 : m_dwPort = 0;
000cc e59d300c ldr r3, [sp, #0xC]
000d0 e2833b01 add r3, r3, #1, 22
000d4 e283208c add r2, r3, #0x8C
000d8 e3a03000 mov r3, #0
000dc e5823000 str r3, [r2]
; 60 : m_f16Bit = FALSE;
000e0 e59d300c ldr r3, [sp, #0xC]
000e4 e2832038 add r2, r3, #0x38
000e8 e3a03000 mov r3, #0
000ec e5823000 str r3, [r2]
; 61 : m_fAtapiDevice = FALSE;
000f0 e59d300c ldr r3, [sp, #0xC]
000f4 e2833c06 add r3, r3, #6, 24
000f8 e2832098 add r2, r3, #0x98
000fc e3a03000 mov r3, #0
00100 e5823000 str r3, [r2]
; 62 : m_fInterruptSupported = FALSE;
00104 e59d300c ldr r3, [sp, #0xC]
00108 e2832040 add r2, r3, #0x40
0010c e3a03000 mov r3, #0
00110 e5823000 str r3, [r2]
; 63 : m_szDiskName = NULL;
00114 e59d300c ldr r3, [sp, #0xC]
00118 e2833c06 add r3, r3, #6, 24
0011c e28320b8 add r2, r3, #0xB8
00120 e3a03000 mov r3, #0
00124 e5823000 str r3, [r2]
; 64 : m_fDMAActive = FALSE;
00128 e59d300c ldr r3, [sp, #0xC]
0012c e2832044 add r2, r3, #0x44
00130 e3a03000 mov r3, #0
00134 e5823000 str r3, [r2]
; 65 : m_dwOpenCount = 0;
00138 e59d300c ldr r3, [sp, #0xC]
0013c e2832068 add r2, r3, #0x68
00140 e3a03000 mov r3, #0
00144 e5823000 str r3, [r2]
; 66 : m_dwUnitReadyTime = 0;
00148 e59d300c ldr r3, [sp, #0xC]
0014c e2833c06 add r3, r3, #6, 24
00150 e28320cc add r2, r3, #0xCC
00154 e3a03000 mov r3, #0
00158 e5823000 str r3, [r2]
; 67 : m_dwStateFlag = 0;
0015c e59d300c ldr r3, [sp, #0xC]
00160 e2832e6e add r2, r3, #0x6E, 28
00164 e3a03000 mov r3, #0
00168 e5823000 str r3, [r2]
; 68 : m_dwLastCheckTime = 0;
0016c e59d300c ldr r3, [sp, #0xC]
00170 e2832e6d add r2, r3, #0x6D, 28
00174 e3a03000 mov r3, #0
00178 e5823000 str r3, [r2]
; 69 : m_dwStride = 1;
0017c e59d300c ldr r3, [sp, #0xC]
00180 e2832004 add r2, r3, #4
00184 e3a03001 mov r3, #1
00188 e5823000 str r3, [r2]
; 70 : m_pDiskPower = NULL;
0018c e59d300c ldr r3, [sp, #0xC]
00190 e2833c06 add r3, r3, #6, 24
00194 e28320d4 add r2, r3, #0xD4
00198 e3a03000 mov r3, #0
0019c e5823000 str r3, [r2]
; 71 : m_rgbDoubleBuffer = NULL;
001a0 e59d300c ldr r3, [sp, #0xC]
001a4 e283204c add r2, r3, #0x4C
001a8 e3a03000 mov r3, #0
001ac e5823000 str r3, [r2]
; 72 :
; 73 : m_pPort = NULL;
001b0 e59d300c ldr r3, [sp, #0xC]
001b4 e283203c add r2, r3, #0x3C
001b8 e3a03000 mov r3, #0
001bc e5823000 str r3, [r2]
; 74 :
; 75 : // init generic structures
; 76 : InitializeCriticalSection(&m_csDisk);
001c0 e59d300c ldr r3, [sp, #0xC]
001c4 e2830054 add r0, r3, #0x54
001c8 eb000000 bl InitializeCriticalSection
; 77 : memset(&m_Id, 0, sizeof(IDENTIFY_DATA));
001cc e3a02c02 mov r2, #2, 24
001d0 e3a01000 mov r1, #0
001d4 e59d300c ldr r3, [sp, #0xC]
001d8 e2830e49 add r0, r3, #0x49, 28
001dc eb000000 bl memset
; 78 : memset(&m_DiskInfo, 0, sizeof(DISK_INFO));
001e0 e3a02018 mov r2, #0x18
001e4 e3a01000 mov r1, #0
001e8 e59d300c ldr r3, [sp, #0xC]
001ec e2830e6a add r0, r3, #0x6A, 28
001f0 eb000000 bl memset
; 79 : memset(&m_InqData, 0, sizeof(INQUIRY_DATA));
001f4 e3a02060 mov r2, #0x60
001f8 e3a01000 mov r1, #0
001fc e59d300c ldr r3, [sp, #0xC]
00200 e2833c06 add r3, r3, #6, 24
00204 e28300e4 add r0, r3, #0xE4
00208 eb000000 bl memset
; 80 : }
0020c e59d300c ldr r3, [sp, #0xC]
00210 e58d3000 str r3, [sp]
00214 e59d0000 ldr r0, [sp]
00218 e28dd004 add sp, sp, #4
0021c e89d6000 ldmia sp, {sp, lr}
00220 e12fff1e bx lr
00224 |$L32928|
00224 00000000 DCD |??_7CDisk@@6B@|
00228 |$M32925|
ENDP ; |??0CDisk@@QAA@PAUHKEY__@@@Z|, CDisk::CDisk
IMPORT |LocalFree|
IMPORT |RegCloseKey|
IMPORT |DeleteCriticalSection|
00010 AREA |.pdata|, PDATA
|$T32937| DCD |$L32936|
DCD 0x40003d04
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -