?? atapipci.cod
字號(hào):
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4091
TTL C:\WINCE500\PLATFORM\SMDK2410\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 |?GetError@CDisk@@QAAEXZ| ; CDisk::GetError
IMPORT |READ_PORT_UCHAR|
; File c:\wince500\platform\smdk2410\drivers\atapi\diskmain.h
00000 AREA |.text| { |?GetError@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?GetError@CDisk@@QAAEXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetError@CDisk@@QAAEXZ| } ; comdat associative
|$T32410| DCD |$L32409|
DCD 0x40000701
; Function compile flags: /Ogsy
00000 AREA |.text| { |?GetError@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?GetError@CDisk@@QAAEXZ| PROC ; CDisk::GetError
; 212 : inline BYTE GetError() {
00000 |$L32409|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M32407|
; 213 : return (BYTE) ATA_READ_BYTE(m_pATAReg + m_dwFeatureErrorOffset);
00004 e5902030 ldr r2, [r0, #0x30]
00008 e590300c ldr r3, [r0, #0xC]
0000c e0820003 add r0, r2, r3
00010 eb000000 bl READ_PORT_UCHAR
; 214 : }
00014 e49de004 ldr lr, [sp], #4
00018 e12fff1e bx lr
0001c |$M32408|
ENDP ; |?GetError@CDisk@@QAAEXZ|, CDisk::GetError
EXPORT |?GetBaseStatus@CDisk@@QAAEXZ| ; CDisk::GetBaseStatus
IMPORT |CeLogData|
IMPORT |?dpCurSettings@@3U_DBGPARAM@@A| ; dpCurSettings
00000 AREA |.text| { |?GetBaseStatus@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?GetBaseStatus@CDisk@@QAAEXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetBaseStatus@CDisk@@QAAEXZ| } ; comdat associative
|$T32421| DCD |$L32420|
DCD 0x40001c02
; Function compile flags: /Ogsy
00000 AREA |.text| { |?GetBaseStatus@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?GetBaseStatus@CDisk@@QAAEXZ| PROC ; CDisk::GetBaseStatus
; 257 : inline BYTE GetBaseStatus() {
00000 |$L32420|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 e24dd014 sub sp, sp, #0x14
00008 |$M32418|
; 258 : BYTE bStatus = ATA_READ_BYTE(m_pATAReg + m_dwCommandStatusOffset);
00008 e5902030 ldr r2, [r0, #0x30]
0000c e5903024 ldr r3, [r0, #0x24]
00010 e0820003 add r0, r2, r3
00014 eb000000 bl READ_PORT_UCHAR
; 259 : if (ZONE_CELOG) CeLogData(TRUE, CELID_ATAPI_BASESTATUS, &bStatus, sizeof(bStatus), 0, CELZONE_ALWAYSON, 0, FALSE);
00018 e59f304c ldr r3, [pc, #0x4C]
0001c e5cd0010 strb r0, [sp, #0x10]
00020 e5933440 ldr r3, [r3, #0x440]
00024 e3130902 tst r3, #2, 18
00028 0a00000c beq |$L31617|
0002c e3a01d86 mov r1, #0x86, 26
00030 e3a0e101 mov lr, #1, 2
00034 e3a04000 mov r4, #0
00038 e3811002 orr r1, r1, #2
0003c e3a03001 mov r3, #1
00040 e28d2010 add r2, sp, #0x10
00044 e3a00001 mov r0, #1
00048 e58d400c str r4, [sp, #0xC]
0004c e58d4008 str r4, [sp, #8]
00050 e58de004 str lr, [sp, #4]
00054 e58d4000 str r4, [sp]
00058 eb000000 bl CeLogData
0005c e5dd0010 ldrb r0, [sp, #0x10]
00060 |$L31617|
; 260 : return bStatus;
; 261 : }
00060 e28dd014 add sp, sp, #0x14
00064 e8bd4010 ldmia sp!, {r4, lr}
00068 e12fff1e bx lr
0006c |$L32423|
0006c 00000000 DCD |?dpCurSettings@@3U_DBGPARAM@@A|
00070 |$M32419|
ENDP ; |?GetBaseStatus@CDisk@@QAAEXZ|, CDisk::GetBaseStatus
EXPORT |?WriteBMCommand@CPCIDisk@@QAAXE@Z| ; CPCIDisk::WriteBMCommand
IMPORT |WRITE_PORT_UCHAR|
; File c:\wince500\platform\smdk2410\drivers\atapi\atapipci.h
00000 AREA |.text| { |?WriteBMCommand@CPCIDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?WriteBMCommand@CPCIDisk@@QAAXE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?WriteBMCommand@CPCIDisk@@QAAXE@Z| } ; comdat associative
|$T32431| DCD |$L32430|
DCD 0x40000501
; Function compile flags: /Ogsy
00000 AREA |.text| { |?WriteBMCommand@CPCIDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?WriteBMCommand@CPCIDisk@@QAAXE@Z| PROC ; CPCIDisk::WriteBMCommand
; 75 : inline void CPCIDisk::WriteBMCommand(BYTE bCommand) {
00000 |$L32430|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M32428|
; 76 : ATA_WRITE_BYTE(m_pBMCommand, bCommand);
00004 e590076c ldr r0, [r0, #0x76C]
00008 eb000000 bl WRITE_PORT_UCHAR
; 77 : }
0000c e49de004 ldr lr, [sp], #4
00010 e12fff1e bx lr
00014 |$M32429|
ENDP ; |?WriteBMCommand@CPCIDisk@@QAAXE@Z|, CPCIDisk::WriteBMCommand
EXPORT |?ReadBMStatus@CPCIDisk@@QAAEXZ| ; CPCIDisk::ReadBMStatus
00000 AREA |.text| { |?ReadBMStatus@CPCIDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?ReadBMStatus@CPCIDisk@@QAAEXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?ReadBMStatus@CPCIDisk@@QAAEXZ| } ; comdat associative
|$T32441| DCD |$L32440|
DCD 0x40000601
; Function compile flags: /Ogsy
00000 AREA |.text| { |?ReadBMStatus@CPCIDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?ReadBMStatus@CPCIDisk@@QAAEXZ| PROC ; CPCIDisk::ReadBMStatus
; 78 : inline BYTE CPCIDisk::ReadBMStatus() {
00000 |$L32440|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M32438|
; 79 : return ATA_READ_BYTE(m_pBMCommand + 2);
00004 e590376c ldr r3, [r0, #0x76C]
00008 e2830002 add r0, r3, #2
0000c eb000000 bl READ_PORT_UCHAR
; 80 : }
00010 e49de004 ldr lr, [sp], #4
00014 e12fff1e bx lr
00018 |$M32439|
ENDP ; |?ReadBMStatus@CPCIDisk@@QAAEXZ|, CPCIDisk::ReadBMStatus
EXPORT |?WriteBMTable@CPCIDisk@@QAAXK@Z| ; CPCIDisk::WriteBMTable
IMPORT |WRITE_PORT_ULONG|
00000 AREA |.text| { |?WriteBMTable@CPCIDisk@@QAAXK@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?WriteBMTable@CPCIDisk@@QAAXK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?WriteBMTable@CPCIDisk@@QAAXK@Z| } ; comdat associative
|$T32450| DCD |$L32449|
DCD 0x40000601
; Function compile flags: /Ogsy
00000 AREA |.text| { |?WriteBMTable@CPCIDisk@@QAAXK@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?WriteBMTable@CPCIDisk@@QAAXK@Z| PROC ; CPCIDisk::WriteBMTable
; 81 : inline void CPCIDisk::WriteBMTable(DWORD dwPhys) {
00000 |$L32449|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M32447|
; 82 : ATA_WRITE_DWORD((LPDWORD)(m_pBMCommand + 4), dwPhys);
00004 e590376c ldr r3, [r0, #0x76C]
00008 e2830004 add r0, r3, #4
0000c eb000000 bl WRITE_PORT_ULONG
; 83 : }
00010 e49de004 ldr lr, [sp], #4
00014 e12fff1e bx lr
00018 |$M32448|
ENDP ; |?WriteBMTable@CPCIDisk@@QAAXK@Z|, CPCIDisk::WriteBMTable
EXPORT |?WriteBMStatus@CPCIDisk@@QAAXE@Z| ; CPCIDisk::WriteBMStatus
00000 AREA |.text| { |?WriteBMStatus@CPCIDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?WriteBMStatus@CPCIDisk@@QAAXE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?WriteBMStatus@CPCIDisk@@QAAXE@Z| } ; comdat associative
|$T32459| DCD |$L32458|
DCD 0x40000601
; Function compile flags: /Ogsy
00000 AREA |.text| { |?WriteBMStatus@CPCIDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?WriteBMStatus@CPCIDisk@@QAAXE@Z| PROC ; CPCIDisk::WriteBMStatus
; 84 : inline void CPCIDisk::WriteBMStatus(BYTE bStatus) {
00000 |$L32458|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M32456|
; 85 : ATA_WRITE_BYTE(m_pBMCommand + 2, bStatus);
00004 e590376c ldr r3, [r0, #0x76C]
00008 e2830002 add r0, r3, #2
0000c eb000000 bl WRITE_PORT_UCHAR
; 86 : }
00010 e49de004 ldr lr, [sp], #4
00014 e12fff1e bx lr
00018 |$M32457|
ENDP ; |?WriteBMStatus@CPCIDisk@@QAAXE@Z|, CPCIDisk::WriteBMStatus
EXPORT |??0CPCIDisk@@QAA@PAUHKEY__@@@Z| ; CPCIDisk::CPCIDisk
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'
IMPORT |??_ECPCIDisk@@UAAPAXI@Z|, WEAK |??_GCPCIDisk@@UAAPAXI@Z| ; CPCIDisk::`vector deleting destructor', CPCIDisk::`scalar deleting destructor'
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|
; File c:\wince500\platform\smdk2410\drivers\atapi\atapipci.cpp
00000 AREA |.text| { |??0CPCIDisk@@QAA@PAUHKEY__@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$??0CPCIDisk@@QAA@PAUHKEY__@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |??0CPCIDisk@@QAA@PAUHKEY__@@@Z| } ; comdat associative
|$T32470| DCD |$L32469|
DCD 0x40001801
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: /Ogsy
00000 AREA |.text| { |??0CPCIDisk@@QAA@PAUHKEY__@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |??0CPCIDisk@@QAA@PAUHKEY__@@@Z| PROC ; CPCIDisk::CPCIDisk
; 59 : {
00000 |$L32469|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M32467|
00004 e1a04000 mov r4, r0
00008 eb000000 bl |??0CDisk@@QAA@PAUHKEY__@@@Z|
0000c e59f3048 ldr r3, [pc, #0x48]
; 60 : m_pStartMemory = NULL;
; 61 : m_pPort = NULL;
; 62 : m_pPhysList = NULL;
; 63 : m_pSGCopy = NULL;
; 64 : m_pPFNs = NULL;
; 65 : m_pPRDPhys = 0;
; 66 : m_pPRD = NULL;
; 67 : m_dwPhysCount = 0;
; 68 : m_dwSGCount = 0;
; 69 : m_dwPRDSize = 0;
; 70 : m_pBMCommand = NULL;
; 71 :
; 72 : InterlockedIncrement(&m_lDeviceCount);
00010 e59f0040 ldr r0, [pc, #0x40]
00014 e3a02000 mov r2, #0
00018 e5843000 str r3, [r4]
0001c e5842748 str r2, [r4, #0x748]
00020 e584203c str r2, [r4, #0x3C]
00024 e5842750 str r2, [r4, #0x750]
00028 e5842754 str r2, [r4, #0x754]
0002c e5842758 str r2, [r4, #0x758]
00030 e5842760 str r2, [r4, #0x760]
00034 e584274c str r2, [r4, #0x74C]
00038 e5842764 str r2, [r4, #0x764]
0003c e584275c str r2, [r4, #0x75C]
00040 e5842768 str r2, [r4, #0x768]
00044 e584276c str r2, [r4, #0x76C]
00048 eb000000 bl InterlockedIncrement
; 73 :
; 74 : DEBUGMSG(ZONE_INIT|ZONE_PCI, (_T(
; 75 : "Atapi!CPCIDisk::CPCIDisk> device count(%d)\r\n"
; 76 : ), m_lDeviceCount));
; 77 : }
0004c e1a00004 mov r0, r4
00050 e8bd4010 ldmia sp!, {r4, lr}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -