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

📄 atapipm.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\.\atapipm.cpp
	CODE32

  00000			 AREA	 |.drectve|, DRECTVE
	DCB	"-defaultlib:coredll.lib "
	DCB	"-defaultlib:corelibc.lib "

	EXPORT	|??0CDiskPower@@QAA@XZ|			; CDiskPower::CDiskPower
	EXPORT	|?Init@CDiskPower@@UAAHPAVCDisk@@@Z|	; CDiskPower::Init
	EXPORT	|?SignalActivity@CDiskPower@@UAAXXZ|	; CDiskPower::SignalActivity
	EXPORT	|?RequestDevice@CDiskPower@@UAAHXZ|	; CDiskPower::RequestDevice
	EXPORT	|?ReleaseDevice@CDiskPower@@UAAXXZ|	; CDiskPower::ReleaseDevice
	EXPORT	|?DiskPowerIoctl@CDiskPower@@UAAKPAU_IOREQ@@@Z| ; CDiskPower::DiskPowerIoctl
	EXPORT	|?SetDiskPower@CDiskPower@@MAAKW4_CEDEVICE_POWER_STATE@@@Z| ; CDiskPower::SetDiskPower
	EXPORT	|?GetDiskPower@CDiskPower@@MAA?AW4_CEDEVICE_POWER_STATE@@XZ| ; CDiskPower::GetDiskPower
	EXPORT	|?GetDiskCapabilities@CDiskPower@@MAAKPAU_POWER_CAPABILITIES@@@Z| ; CDiskPower::GetDiskCapabilities
	EXPORT	|?TakeCS@CDiskPower@@MAAXXZ|		; CDiskPower::TakeCS
	EXPORT	|?ReleaseCS@CDiskPower@@MAAXXZ|		; CDiskPower::ReleaseCS
	EXPORT	|?DiskPowerThread@CDiskPower@@EAAKXZ|	; CDiskPower::DiskPowerThread
	EXPORT	|??_7CDiskPower@@6B@| [ DATA ]		; CDiskPower::`vftable'
	EXPORT	|??_GCDiskPower@@UAAPAXI@Z|		; CDiskPower::`scalar deleting destructor'
	IMPORT	|QueryPerformanceCounter|
	IMPORT	|memset|
	IMPORT	|InitializeCriticalSection|
	IMPORT	|??_ECDiskPower@@UAAPAXI@Z|, WEAK |??_GCDiskPower@@UAAPAXI@Z| ; CDiskPower::`vector deleting destructor', CDiskPower::`scalar deleting destructor'
	IMPORT	|GetTickCount|

  00000			 AREA	 |.pdata|, PDATA
|$T32432| DCD	|$L32431|
	DCD	0x40006604
; File d:\wince500\platform\smdk2440\drivers\atapi\atapipm.cpp

  00000			 AREA	 |.rdata| { |??_7CDiskPower@@6B@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_7CDiskPower@@6B@| DCD |??_ECDiskPower@@UAAPAXI@Z|	; CDiskPower::`vftable'
	DCD	|?Init@CDiskPower@@UAAHPAVCDisk@@@Z|
	DCD	|?SignalActivity@CDiskPower@@UAAXXZ|
	DCD	|?RequestDevice@CDiskPower@@UAAHXZ|
	DCD	|?ReleaseDevice@CDiskPower@@UAAXXZ|
	DCD	|?DiskPowerIoctl@CDiskPower@@UAAKPAU_IOREQ@@@Z|
	DCD	|?SetDiskPower@CDiskPower@@MAAKW4_CEDEVICE_POWER_STATE@@@Z|
	DCD	|?GetDiskPower@CDiskPower@@MAA?AW4_CEDEVICE_POWER_STATE@@XZ|
	DCD	|?GetDiskCapabilities@CDiskPower@@MAAKPAU_POWER_CAPABILITIES@@@Z|
	DCD	|?TakeCS@CDiskPower@@MAAXXZ|
	DCD	|?ReleaseCS@CDiskPower@@MAAXXZ|
	DCD	|?DiskPowerThread@CDiskPower@@EAAKXZ|
; Function compile flags: /Odt

  00000			 AREA	 |.text|, CODE, ARM

  00000		 |??0CDiskPower@@QAA@XZ| PROC		; CDiskPower::CDiskPower

; 133  : {

  00000		 |$L32431|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0001	 stmdb       sp!, {r0}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd008	 sub         sp, sp, #8
  00010		 |$M32429|
  00010	e59f217c	 ldr         r2, [pc, #0x17C]
  00014	e59d3010	 ldr         r3, [sp, #0x10]
  00018	e5832000	 str         r2, [r3]
  0001c	e59d3010	 ldr         r3, [sp, #0x10]
  00020	e2832008	 add         r2, r3, #8
  00024	e3a03000	 mov         r3, #0
  00028	e5823000	 str         r3, [r2]
  0002c	e59d3010	 ldr         r3, [sp, #0x10]
  00030	e283200c	 add         r2, r3, #0xC
  00034	e3a03002	 mov         r3, #2
  00038	e5823000	 str         r3, [r2]
  0003c	e59d3010	 ldr         r3, [sp, #0x10]
  00040	e2832010	 add         r2, r3, #0x10
  00044	e3a03000	 mov         r3, #0
  00048	e5823000	 str         r3, [r2]
  0004c	e59d3010	 ldr         r3, [sp, #0x10]
  00050	e2832014	 add         r2, r3, #0x14
  00054	e3a03000	 mov         r3, #0
  00058	e5823000	 str         r3, [r2]
  0005c	e59d3010	 ldr         r3, [sp, #0x10]
  00060	e2832018	 add         r2, r3, #0x18
  00064	e3a03ffa	 mov         r3, #0xFA, 30
  00068	e5823000	 str         r3, [r2]
  0006c	e59d3010	 ldr         r3, [sp, #0x10]
  00070	e283201c	 add         r2, r3, #0x1C
  00074	e3a03000	 mov         r3, #0
  00078	e5823000	 str         r3, [r2]
  0007c	e59d3010	 ldr         r3, [sp, #0x10]
  00080	e2832020	 add         r2, r3, #0x20
  00084	e3a03000	 mov         r3, #0
  00088	e5823000	 str         r3, [r2]
  0008c	e59d3010	 ldr         r3, [sp, #0x10]
  00090	e2832028	 add         r2, r3, #0x28
  00094	e3a03000	 mov         r3, #0
  00098	e5823000	 str         r3, [r2]
  0009c	e59d3010	 ldr         r3, [sp, #0x10]
  000a0	e2832040	 add         r2, r3, #0x40
  000a4	e3a030fa	 mov         r3, #0xFA
  000a8	e5823000	 str         r3, [r2]
  000ac	e59d3010	 ldr         r3, [sp, #0x10]
  000b0	e2832044	 add         r2, r3, #0x44
  000b4	e3a03000	 mov         r3, #0
  000b8	e5823000	 str         r3, [r2]
  000bc	e59d3010	 ldr         r3, [sp, #0x10]
  000c0	e2832048	 add         r2, r3, #0x48
  000c4	e3a03000	 mov         r3, #0
  000c8	e5823000	 str         r3, [r2]
  000cc	e59d3010	 ldr         r3, [sp, #0x10]
  000d0	e283204c	 add         r2, r3, #0x4C
  000d4	e3a03000	 mov         r3, #0
  000d8	e5823000	 str         r3, [r2]
  000dc	e59d3010	 ldr         r3, [sp, #0x10]
  000e0	e28320b0	 add         r2, r3, #0xB0
  000e4	e3a03000	 mov         r3, #0
  000e8	e5823000	 str         r3, [r2]

; 134  :     memset(&m_dxInfo, 0, sizeof(m_dxInfo));

  000ec	e3a02050	 mov         r2, #0x50
  000f0	e3a01000	 mov         r1, #0
  000f4	e59d3010	 ldr         r3, [sp, #0x10]
  000f8	e2830060	 add         r0, r3, #0x60
  000fc	eb000000	 bl          memset

; 135  :     m_dwStartTickCount = GetTickCount();

  00100	eb000000	 bl          GetTickCount
  00104	e58d0004	 str         r0, [sp, #4]
  00108	e59d3010	 ldr         r3, [sp, #0x10]
  0010c	e2832050	 add         r2, r3, #0x50
  00110	e59d3004	 ldr         r3, [sp, #4]
  00114	e5823000	 str         r3, [r2]

; 136  :     QueryPerformanceCounter(&m_startQPC);

  00118	e59d3010	 ldr         r3, [sp, #0x10]
  0011c	e2830058	 add         r0, r3, #0x58
  00120	eb000000	 bl          QueryPerformanceCounter

; 137  :     m_dxInfo[m_curDx].dwCount++;

  00124	e59d3010	 ldr         r3, [sp, #0x10]
  00128	e2833008	 add         r3, r3, #8
  0012c	e5931000	 ldr         r1, [r3]
  00130	e3a03010	 mov         r3, #0x10
  00134	e0020391	 mul         r2, r1, r3
  00138	e59d3010	 ldr         r3, [sp, #0x10]
  0013c	e2833060	 add         r3, r3, #0x60
  00140	e0833002	 add         r3, r3, r2
  00144	e5933000	 ldr         r3, [r3]
  00148	e2830001	 add         r0, r3, #1
  0014c	e59d3010	 ldr         r3, [sp, #0x10]
  00150	e2833008	 add         r3, r3, #8
  00154	e5931000	 ldr         r1, [r3]
  00158	e3a03010	 mov         r3, #0x10
  0015c	e0020391	 mul         r2, r1, r3
  00160	e59d3010	 ldr         r3, [sp, #0x10]
  00164	e2833060	 add         r3, r3, #0x60
  00168	e0833002	 add         r3, r3, r2
  0016c	e5830000	 str         r0, [r3]

; 138  :     InitializeCriticalSection(&m_csPower);

  00170	e59d3010	 ldr         r3, [sp, #0x10]
  00174	e283002c	 add         r0, r3, #0x2C
  00178	eb000000	 bl          InitializeCriticalSection

; 139  : }

  0017c	e59d3010	 ldr         r3, [sp, #0x10]
  00180	e58d3000	 str         r3, [sp]
  00184	e59d0000	 ldr         r0, [sp]
  00188	e28dd008	 add         sp, sp, #8
  0018c	e89d6000	 ldmia       sp, {sp, lr}
  00190	e12fff1e	 bx          lr
  00194		 |$L32433|
  00194	00000000	 DCD         |??_7CDiskPower@@6B@|
  00198		 |$M32430|

			 ENDP  ; |??0CDiskPower@@QAA@XZ|, CDiskPower::CDiskPower

	EXPORT	|??1CDiskPower@@UAA@XZ|			; CDiskPower::~CDiskPower
	IMPORT	|??3@YAXPAX@Z|				; operator delete

  00000			 AREA	 |.text| { |??_GCDiskPower@@UAAPAXI@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$??_GCDiskPower@@UAAPAXI@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |??_GCDiskPower@@UAAPAXI@Z| } ; comdat associative
|$T32439| DCD	|$L32438|
	DCD	0x40001104
; Function compile flags: /Odt

  00000			 AREA	 |.text| { |??_GCDiskPower@@UAAPAXI@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |??_GCDiskPower@@UAAPAXI@Z| PROC	; CDiskPower::`scalar deleting destructor'
  00000		 |$L32438|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0003	 stmdb       sp!, {r0, r1}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd004	 sub         sp, sp, #4
  00010		 |$M32436|
  00010	e59d000c	 ldr         r0, [sp, #0xC]
  00014	eb000000	 bl          |??1CDiskPower@@UAA@XZ|
  00018	e59d3010	 ldr         r3, [sp, #0x10]
  0001c	e3130001	 tst         r3, #1
  00020	0a000001	 beq         |$L32009|
  00024	e59d000c	 ldr         r0, [sp, #0xC]
  00028	eb000000	 bl          |??3@YAXPAX@Z|
  0002c		 |$L32009|
  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		 |$M32437|

			 ENDP  ; |??_GCDiskPower@@UAAPAXI@Z|, CDiskPower::`scalar deleting destructor'

	EXPORT	|??_C@_1HA@GOBHIDMB@?$AAd?$AA?3?$AA?2?$AAw?$AAi?$AAn?$AAc?$AAe?$AA5?$AA0?$AA0?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm@| [ DATA ] ; `string'
	EXPORT	|??_C@_1FK@FNONLNGN@?$AA?$CF?$AAs?$AA?3?$AA?5?$AAD?$AAE?$AAB?$AAU?$AAG?$AAC?$AAH?$AAK?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5@| [ DATA ] ; `string'
	IMPORT	|LocalFree|
	IMPORT	|WaitForSingleObject|
	IMPORT	|NKDbgPrintfW|
	IMPORT	|dpCurSettings|
	IMPORT	|DeleteCriticalSection|
	IMPORT	|CloseHandle|

  00008			 AREA	 |.pdata|, PDATA
|$T32448| DCD	|$L32447|
	DCD	0x40005004

  00000			 AREA	 |.rdata| { |??_C@_1FK@FNONLNGN@?$AA?$CF?$AAs?$AA?3?$AA?5?$AAD?$AAE?$AAB?$AAU?$AAG?$AAC?$AAH?$AAK?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1FK@FNONLNGN@?$AA?$CF?$AAs?$AA?3?$AA?5?$AAD?$AAE?$AAB?$AAU?$AAG?$AAC?$AAH?$AAK?$AA?5?$AAf?$AAa?$AAi?$AAl?$AAe?$AAd?$AA?5@| DCB "%"
	DCB	0x0, "s", 0x0, ":", 0x0, " ", 0x0, "D", 0x0, "E", 0x0, "B"
	DCB	0x0, "U", 0x0, "G", 0x0, "C", 0x0, "H", 0x0, "K", 0x0, " "
	DCB	0x0, "f", 0x0, "a", 0x0, "i", 0x0, "l", 0x0, "e", 0x0, "d"
	DCB	0x0, " ", 0x0, "i", 0x0, "n", 0x0, " ", 0x0, "f", 0x0, "i"
	DCB	0x0, "l", 0x0, "e", 0x0, " ", 0x0, "%", 0x0, "s", 0x0, " "
	DCB	0x0, "a", 0x0, "t", 0x0, " ", 0x0, "l", 0x0, "i", 0x0, "n"
	DCB	0x0, "e", 0x0, " ", 0x0, "%", 0x0, "d", 0x0, " ", 0x0, 0xd
	DCB	0x0, 0xa, 0x0, 0x0, 0x0			; `string'

  00000			 AREA	 |.rdata| { |??_C@_1HA@GOBHIDMB@?$AAd?$AA?3?$AA?2?$AAw?$AAi?$AAn?$AAc?$AAe?$AA5?$AA0?$AA0?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1HA@GOBHIDMB@?$AAd?$AA?3?$AA?2?$AAw?$AAi?$AAn?$AAc?$AAe?$AA5?$AA0?$AA0?$AA?2?$AAp?$AAl?$AAa?$AAt?$AAf?$AAo?$AAr?$AAm@| DCB "d"
	DCB	0x0, ":", 0x0, "\\", 0x0, "w", 0x0, "i", 0x0, "n", 0x0, "c"
	DCB	0x0, "e", 0x0, "5", 0x0, "0", 0x0, "0", 0x0, "\\", 0x0, "p"
	DCB	0x0, "l", 0x0, "a", 0x0, "t", 0x0, "f", 0x0, "o", 0x0, "r"
	DCB	0x0, "m", 0x0, "\\", 0x0, "s", 0x0, "m", 0x0, "d", 0x0, "k"
	DCB	0x0, "2", 0x0, "4", 0x0, "4", 0x0, "0", 0x0, "\\", 0x0, "d"
	DCB	0x0, "r", 0x0, "i", 0x0, "v", 0x0, "e", 0x0, "r", 0x0, "s"
	DCB	0x0, "\\", 0x0, "a", 0x0, "t", 0x0, "a", 0x0, "p", 0x0, "i"
	DCB	0x0, "\\", 0x0, "a", 0x0, "t", 0x0, "a", 0x0, "p", 0x0, "i"
	DCB	0x0, "p", 0x0, "m", 0x0, ".", 0x0, "c", 0x0, "p", 0x0, "p"
	DCB	0x0, 0x0, 0x0				; `string'
; Function compile flags: /Odt

  00198			 AREA	 |.text|, CODE, ARM

  00198		 |??1CDiskPower@@UAA@XZ| PROC		; CDiskPower::~CDiskPower

; 142  : {

  00198		 |$L32447|
  00198	e1a0c00d	 mov         r12, sp
  0019c	e92d0001	 stmdb       sp!, {r0}
  001a0	e92d5000	 stmdb       sp!, {r12, lr}
  001a4	e24dd004	 sub         sp, sp, #4
  001a8		 |$M32445|
  001a8	e59f2124	 ldr         r2, [pc, #0x124]
  001ac	e59d300c	 ldr         r3, [sp, #0xC]
  001b0	e5832000	 str         r2, [r3]

; 143  :     if(m_htPower) {

  001b4	e59d300c	 ldr         r3, [sp, #0xC]
  001b8	e283301c	 add         r3, r3, #0x1C
  001bc	e5933000	 ldr         r3, [r3]
  001c0	e3530000	 cmp         r3, #0
  001c4	0a00001e	 beq         |$L32014|

; 144  :         DEBUGCHK(m_hevPowerSignal);

  001c8	e59d300c	 ldr         r3, [sp, #0xC]
  001cc	e2833020	 add         r3, r3, #0x20
  001d0	e5933000	 ldr         r3, [r3]
  001d4	e3530000	 cmp         r3, #0
  001d8	0a000002	 beq         |$L32443|
  001dc	e3a03001	 mov         r3, #1
  001e0	e58d3000	 str         r3, [sp]
  001e4	ea000007	 b           |$L32444|
  001e8		 |$L32443|
  001e8	e3a03090	 mov         r3, #0x90
  001ec	e59f20dc	 ldr         r2, [pc, #0xDC]
  001f0	e59f10d4	 ldr         r1, [pc, #0xD4]
  001f4	e59f00cc	 ldr         r0, [pc, #0xCC]
  001f8	eb000000	 bl          NKDbgPrintfW
  001fc	e6000010	 DCD         0xe6000010
  00200	e3a03000	 mov         r3, #0
  00204	e58d3000	 str         r3, [sp]
  00208		 |$L32444|

; 145  :         m_fShutdownPowerThread = TRUE;

  00208	e59d300c	 ldr         r3, [sp, #0xC]
  0020c	e2832028	 add         r2, r3, #0x28
  00210	e3a03001	 mov         r3, #1
  00214	e5823000	 str         r3, [r2]

; 146  :         SignalActivity();

  00218	e59d000c	 ldr         r0, [sp, #0xC]
  0021c	eb000000	 bl          |?SignalActivity@CDiskPower@@UAAXXZ|

; 147  :         WaitForSingleObject(m_htPower, INFINITE);

  00220	e3e01000	 mvn         r1, #0
  00224	e59d300c	 ldr         r3, [sp, #0xC]
  00228	e283301c	 add         r3, r3, #0x1C
  0022c	e5930000	 ldr         r0, [r3]
  00230	eb000000	 bl          WaitForSingleObject

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -