📄 atapipci.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4091
TTL D:\WINCE500\PLATFORM\smdk2440\DRIVERS\atapi\.\atapipci.cpp
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
EXPORT |?m_lDeviceCount@CPCIDisk@@2JA| [ DATA ] ; CPCIDisk::m_lDeviceCount
EXPORT |??_C@_1O@BKCJJMBP@?$AAC?$AAD?$AA?9?$AAR?$AAO?$AAM?$AA?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_1BE@LMHCDCPA@?$AAH?$AAa?$AAr?$AAd?$AA?5?$AAD?$AAi?$AAs?$AAk?$AA?$AA@| [ DATA ] ; `string'
00000 AREA |.bss|, NOINIT
|?m_lDeviceCount@CPCIDisk@@2JA| % 0x4 ; CPCIDisk::m_lDeviceCount
00000 AREA |.rdata| { |??_C@_1BE@LMHCDCPA@?$AAH?$AAa?$AAr?$AAd?$AA?5?$AAD?$AAi?$AAs?$AAk?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BE@LMHCDCPA@?$AAH?$AAa?$AAr?$AAd?$AA?5?$AAD?$AAi?$AAs?$AAk?$AA?$AA@| DCB "H"
DCB 0x0, "a", 0x0, "r", 0x0, "d", 0x0, " ", 0x0, "D", 0x0, "i"
DCB 0x0, "s", 0x0, "k", 0x0, 0x0, 0x0 ; `string'
00000 AREA |.data|, DATA
|g_szPCIHardDisk| DCD |??_C@_1BE@LMHCDCPA@?$AAH?$AAa?$AAr?$AAd?$AA?5?$AAD?$AAi?$AAs?$AAk?$AA?$AA@|
|g_szPCICDRomDisk| DCD |??_C@_1O@BKCJJMBP@?$AAC?$AAD?$AA?9?$AAR?$AAO?$AAM?$AA?$AA@|
00000 AREA |.rdata| { |??_C@_1O@BKCJJMBP@?$AAC?$AAD?$AA?9?$AAR?$AAO?$AAM?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1O@BKCJJMBP@?$AAC?$AAD?$AA?9?$AAR?$AAO?$AAM?$AA?$AA@| DCB "C", 0x0
DCB "D", 0x0, "-", 0x0, "R", 0x0, "O", 0x0, "M", 0x0, 0x0, 0x0 ; `string'
EXPORT |??0CPCIDisk@@QAA@PAUHKEY__@@@Z| ; CPCIDisk::CPCIDisk
EXPORT |CreatePCIHD|
IMPORT |??2@YAPAXI@Z| ; operator new
00000 AREA |.pdata|, PDATA
|$T32408| DCD |$L32407|
DCD 0x40001b04
; Function compile flags: /Odt
; File d:\wince500\platform\smdk2440\drivers\atapi\atapipci.cpp
00000 AREA |.text|, CODE, ARM
00000 |CreatePCIHD| PROC
; 44 : {
00000 |$L32407|
00000 e1a0c00d mov r12, sp
00004 e92d0001 stmdb sp!, {r0}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd014 sub sp, sp, #0x14
00010 |$M32405|
; 45 : return new CPCIDisk(hDevKey);
00010 e3a00e77 mov r0, #0x77, 28
00014 eb000000 bl |??2@YAPAXI@Z|
00018 e58d0008 str r0, [sp, #8]
0001c e59d3008 ldr r3, [sp, #8]
00020 e58d3000 str r3, [sp]
00024 e59d3000 ldr r3, [sp]
00028 e3530000 cmp r3, #0
0002c 0a000006 beq |$L32402|
00030 e59d101c ldr r1, [sp, #0x1C]
00034 e59d0000 ldr r0, [sp]
00038 eb000000 bl |??0CPCIDisk@@QAA@PAUHKEY__@@@Z|
0003c e58d000c str r0, [sp, #0xC]
00040 e59d300c ldr r3, [sp, #0xC]
00044 e58d3010 str r3, [sp, #0x10]
00048 ea000001 b |$L32403|
0004c |$L32402|
0004c e3a03000 mov r3, #0
00050 e58d3010 str r3, [sp, #0x10]
00054 |$L32403|
00054 e59d3010 ldr r3, [sp, #0x10]
00058 e58d3004 str r3, [sp, #4]
0005c e59d0004 ldr r0, [sp, #4]
; 46 : }
00060 e28dd014 add sp, sp, #0x14
00064 e89d6000 ldmia sp, {sp, lr}
00068 e12fff1e bx lr
0006c |$M32406|
ENDP ; |CreatePCIHD|
EXPORT |?ConfigureRegisterBlock@CPCIDisk@@UAAXK@Z| ; CPCIDisk::ConfigureRegisterBlock
EXPORT |?Init@CPCIDisk@@UAAHPAUHKEY__@@@Z| ; CPCIDisk::Init
EXPORT |?MainIoctl@CPCIDisk@@UAAKPAU_IOREQ@@@Z| ; CPCIDisk::MainIoctl
EXPORT |?WaitForInterrupt@CPCIDisk@@UAAHK@Z| ; CPCIDisk::WaitForInterrupt
EXPORT |?EnableInterrupt@CPCIDisk@@UAAXXZ| ; CPCIDisk::EnableInterrupt
EXPORT |?ConfigPort@CPCIDisk@@UAAHXZ| ; CPCIDisk::ConfigPort
EXPORT |?SetupDMA@CPCIDisk@@UAAHPAU_SG_BUF@@KH@Z| ; CPCIDisk::SetupDMA
EXPORT |?BeginDMA@CPCIDisk@@UAAHH@Z| ; CPCIDisk::BeginDMA
EXPORT |?EndDMA@CPCIDisk@@UAAHXZ| ; CPCIDisk::EndDMA
EXPORT |?AbortDMA@CPCIDisk@@UAAHXZ| ; CPCIDisk::AbortDMA
EXPORT |?CompleteDMA@CPCIDisk@@UAAHPAU_SG_BUF@@KH@Z| ; CPCIDisk::CompleteDMA
EXPORT |?TakeCS@CPCIDisk@@UAAXXZ| ; CPCIDisk::TakeCS
EXPORT |?ReleaseCS@CPCIDisk@@UAAXXZ| ; CPCIDisk::ReleaseCS
EXPORT |??_7CPCIDisk@@6B@| [ DATA ] ; CPCIDisk::`vftable'
EXPORT |??_GCPCIDisk@@UAAPAXI@Z| ; CPCIDisk::`scalar deleting destructor'
EXPORT |??_C@_1FK@KLCDHGMK@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAP?$AAC?$AAI?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAC?$AAP?$AAC?$AAI@| [ DATA ] ; `string'
IMPORT |??_ECPCIDisk@@UAAPAXI@Z|, WEAK |??_GCPCIDisk@@UAAPAXI@Z| ; CPCIDisk::`vector deleting destructor', CPCIDisk::`scalar deleting destructor'
IMPORT |NKDbgPrintfW|
IMPORT |dpCurSettings|
IMPORT |??0CDisk@@QAA@PAUHKEY__@@@Z| ; CDisk::CDisk
IMPORT |?InitController@CDisk@@UAAHH@Z| ; CDisk::InitController
IMPORT |?GetDeviceInfo@CDisk@@UAAKPAU_IOREQ@@@Z| ; CDisk::GetDeviceInfo
IMPORT |?WaitForDRQ@CDisk@@UAAHXZ| ; CDisk::WaitForDRQ
IMPORT |?WaitForDisc@CDisk@@UAAHEKK@Z| ; CDisk::WaitForDisc
IMPORT |?ReadWriteDiskDMA@CDisk@@UAAKPAU_IOREQ@@H@Z| ; CDisk::ReadWriteDiskDMA
IMPORT |?GetDiskPowerInterface@CDisk@@UAAPAVCDiskPower@@XZ| ; CDisk::GetDiskPowerInterface
IMPORT |?SetDiskPowerState@CDisk@@UAAHW4_CEDEVICE_POWER_STATE@@@Z| ; CDisk::SetDiskPowerState
IMPORT |?WakeUp@CDisk@@UAAHXZ| ; CDisk::WakeUp
IMPORT |InterlockedIncrement|
00008 AREA |.pdata|, PDATA
|$T32416| DCD |$L32415|
DCD 0x40005c04
00000 AREA |.rdata| { |??_C@_1FK@KLCDHGMK@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAP?$AAC?$AAI?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAC?$AAP?$AAC?$AAI@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1FK@KLCDHGMK@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAP?$AAC?$AAI?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAC?$AAP?$AAC?$AAI@| DCB "A"
DCB 0x0, "t", 0x0, "a", 0x0, "p", 0x0, "i", 0x0, "!", 0x0, "C"
DCB 0x0, "P", 0x0, "C", 0x0, "I", 0x0, "D", 0x0, "i", 0x0, "s"
DCB 0x0, "k", 0x0, ":", 0x0, ":", 0x0, "C", 0x0, "P", 0x0, "C"
DCB 0x0, "I", 0x0, "D", 0x0, "i", 0x0, "s", 0x0, "k", 0x0, ">"
DCB 0x0, " ", 0x0, "d", 0x0, "e", 0x0, "v", 0x0, "i", 0x0, "c"
DCB 0x0, "e", 0x0, " ", 0x0, "c", 0x0, "o", 0x0, "u", 0x0, "n"
DCB 0x0, "t", 0x0, "(", 0x0, "%", 0x0, "d", 0x0, ")", 0x0, 0xd
DCB 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_7CPCIDisk@@6B@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_7CPCIDisk@@6B@| DCD |??_ECPCIDisk@@UAAPAXI@Z| ; CPCIDisk::`vftable'
DCD |?ConfigureRegisterBlock@CPCIDisk@@UAAXK@Z|
DCD |?Init@CPCIDisk@@UAAHPAUHKEY__@@@Z|
DCD |?InitController@CDisk@@UAAHH@Z|
DCD |?GetDeviceInfo@CDisk@@UAAKPAU_IOREQ@@@Z|
DCD |?MainIoctl@CPCIDisk@@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@CPCIDisk@@UAAXXZ|
DCD |?ReleaseCS@CPCIDisk@@UAAXXZ|
DCD |?WaitForInterrupt@CPCIDisk@@UAAHK@Z|
DCD |?EnableInterrupt@CPCIDisk@@UAAXXZ|
DCD |?SetupDMA@CPCIDisk@@UAAHPAU_SG_BUF@@KH@Z|
DCD |?BeginDMA@CPCIDisk@@UAAHH@Z|
DCD |?EndDMA@CPCIDisk@@UAAHXZ|
DCD |?AbortDMA@CPCIDisk@@UAAHXZ|
DCD |?CompleteDMA@CPCIDisk@@UAAHPAU_SG_BUF@@KH@Z|
DCD |?ConfigPort@CPCIDisk@@UAAHXZ|
; Function compile flags: /Odt
0006c AREA |.text|, CODE, ARM
0006c |??0CPCIDisk@@QAA@PAUHKEY__@@@Z| PROC ; CPCIDisk::CPCIDisk
; 59 : {
0006c |$L32415|
0006c e1a0c00d mov r12, sp
00070 e92d0003 stmdb sp!, {r0, r1}
00074 e92d5000 stmdb sp!, {r12, lr}
00078 e24dd00c sub sp, sp, #0xC
0007c |$M32413|
0007c e59d1018 ldr r1, [sp, #0x18]
00080 e59d0014 ldr r0, [sp, #0x14]
00084 eb000000 bl |??0CDisk@@QAA@PAUHKEY__@@@Z|
00088 e58d0004 str r0, [sp, #4]
0008c e59f2144 ldr r2, [pc, #0x144]
00090 e59d3014 ldr r3, [sp, #0x14]
00094 e5832000 str r2, [r3]
; 60 : m_pStartMemory = NULL;
00098 e59d3014 ldr r3, [sp, #0x14]
0009c e2833c07 add r3, r3, #7, 24
000a0 e2832048 add r2, r3, #0x48
000a4 e3a03000 mov r3, #0
000a8 e5823000 str r3, [r2]
; 61 : m_pPort = NULL;
000ac e59d3014 ldr r3, [sp, #0x14]
000b0 e283203c add r2, r3, #0x3C
000b4 e3a03000 mov r3, #0
000b8 e5823000 str r3, [r2]
; 62 : m_pPhysList = NULL;
000bc e59d3014 ldr r3, [sp, #0x14]
000c0 e2832e75 add r2, r3, #0x75, 28
000c4 e3a03000 mov r3, #0
000c8 e5823000 str r3, [r2]
; 63 : m_pSGCopy = NULL;
000cc e59d3014 ldr r3, [sp, #0x14]
000d0 e2833c07 add r3, r3, #7, 24
000d4 e2832054 add r2, r3, #0x54
000d8 e3a03000 mov r3, #0
000dc e5823000 str r3, [r2]
; 64 : m_pPFNs = NULL;
000e0 e59d3014 ldr r3, [sp, #0x14]
000e4 e2833c07 add r3, r3, #7, 24
000e8 e2832058 add r2, r3, #0x58
000ec e3a03000 mov r3, #0
000f0 e5823000 str r3, [r2]
; 65 : m_pPRDPhys = 0;
000f4 e59d3014 ldr r3, [sp, #0x14]
000f8 e2832e76 add r2, r3, #0x76, 28
000fc e3a03000 mov r3, #0
00100 e5823000 str r3, [r2]
; 66 : m_pPRD = NULL;
00104 e59d3014 ldr r3, [sp, #0x14]
00108 e2833c07 add r3, r3, #7, 24
0010c e283204c add r2, r3, #0x4C
00110 e3a03000 mov r3, #0
00114 e5823000 str r3, [r2]
; 67 : m_dwPhysCount = 0;
00118 e59d3014 ldr r3, [sp, #0x14]
0011c e2833c07 add r3, r3, #7, 24
00120 e2832064 add r2, r3, #0x64
00124 e3a03000 mov r3, #0
00128 e5823000 str r3, [r2]
; 68 : m_dwSGCount = 0;
0012c e59d3014 ldr r3, [sp, #0x14]
00130 e2833c07 add r3, r3, #7, 24
00134 e283205c add r2, r3, #0x5C
00138 e3a03000 mov r3, #0
0013c e5823000 str r3, [r2]
; 69 : m_dwPRDSize = 0;
00140 e59d3014 ldr r3, [sp, #0x14]
00144 e2833c07 add r3, r3, #7, 24
00148 e2832068 add r2, r3, #0x68
0014c e3a03000 mov r3, #0
00150 e5823000 str r3, [r2]
; 70 : m_pBMCommand = NULL;
00154 e59d3014 ldr r3, [sp, #0x14]
00158 e2833c07 add r3, r3, #7, 24
0015c e283206c add r2, r3, #0x6C
00160 e3a03000 mov r3, #0
00164 e5823000 str r3, [r2]
; 71 :
; 72 : InterlockedIncrement(&m_lDeviceCount);
00168 e59f0060 ldr r0, [pc, #0x60]
0016c eb000000 bl InterlockedIncrement
; 73 :
; 74 : DEBUGMSG(ZONE_INIT|ZONE_PCI, (_T(
; 75 : "Atapi!CPCIDisk::CPCIDisk> device count(%d)\r\n"
; 76 : ), m_lDeviceCount));
00170 e59f305c ldr r3, [pc, #0x5C]
00174 e5933440 ldr r3, [r3, #0x440]
00178 e2032001 and r2, r3, #1
0017c e59f3050 ldr r3, [pc, #0x50]
00180 e5933440 ldr r3, [r3, #0x440]
00184 e2033020 and r3, r3, #0x20
00188 e1923003 orrs r3, r2, r3
0018c 0a000006 beq |$L32410|
00190 e59f3038 ldr r3, [pc, #0x38]
00194 e5931000 ldr r1, [r3]
00198 e59f002c ldr r0, [pc, #0x2C]
0019c eb000000 bl NKDbgPrintfW
001a0 e3a03001 mov r3, #1
001a4 e58d3008 str r3, [sp, #8]
001a8 ea000001 b |$L32411|
001ac |$L32410|
001ac e3a03000 mov r3, #0
001b0 e58d3008 str r3, [sp, #8]
001b4 |$L32411|
; 77 : }
001b4 e59d3014 ldr r3, [sp, #0x14]
001b8 e58d3000 str r3, [sp]
001bc e59d0000 ldr r0, [sp]
001c0 e28dd00c add sp, sp, #0xC
001c4 e89d6000 ldmia sp, {sp, lr}
001c8 e12fff1e bx lr
001cc |$L32417|
001cc 00000000 DCD |??_C@_1FK@KLCDHGMK@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAP?$AAC?$AAI?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAC?$AAP?$AAC?$AAI@|
001d0 00000000 DCD |?m_lDeviceCount@CPCIDisk@@2JA|
001d4 00000000 DCD |dpCurSettings|
001d8 00000000 DCD |??_7CPCIDisk@@6B@|
001dc |$M32414|
ENDP ; |??0CPCIDisk@@QAA@PAUHKEY__@@@Z|, CPCIDisk::CPCIDisk
IMPORT |?TakeCS@CPort@@QAAXXZ| ; CPort::TakeCS
; File d:\wince500\platform\smdk2440\drivers\atapi\atapipci.h
00000 AREA |.text| { |?TakeCS@CPCIDisk@@UAAXXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?TakeCS@CPCIDisk@@UAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?TakeCS@CPCIDisk@@UAAXXZ| } ; comdat associative
|$T32422| DCD |$L32421|
DCD 0x40000903
; Function compile flags: /Odt
00000 AREA |.text| { |?TakeCS@CPCIDisk@@UAAXXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?TakeCS@CPCIDisk@@UAAXXZ| PROC ; CPCIDisk::TakeCS
; 69 : inline virtual void CPCIDisk::TakeCS() {
00000 |$L32421|
00000 e1a0c00d mov r12, sp
00004 e92d0001 stmdb sp!, {r0}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c |$M32419|
; 70 : m_pPort->TakeCS();
0000c e59d3008 ldr r3, [sp, #8]
00010 e283303c add r3, r3, #0x3C
00014 e5930000 ldr r0, [r3]
00018 eb000000 bl |?TakeCS@CPort@@QAAXXZ|
; 71 : }
0001c e89d6000 ldmia sp, {sp, lr}
00020 e12fff1e bx lr
00024 |$M32420|
ENDP ; |?TakeCS@CPCIDisk@@UAAXXZ|, CPCIDisk::TakeCS
IMPORT |?ReleaseCS@CPort@@QAAXXZ| ; CPort::ReleaseCS
00000 AREA |.text| { |?ReleaseCS@CPCIDisk@@UAAXXZ| }, CODE, ARM, SELECTION=2 ; comdat any
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -