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

📄 atapipci.cod

📁 2440 CE500BSP包, EBOOT可用DEBUG版调试
💻 COD
📖 第 1 页 / 共 5 页
字号:
; 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 + -