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

📄 atapipci.cod

📁 2440 CE500BSP包, EBOOT可用DEBUG版调试
💻 COD
📖 第 1 页 / 共 5 页
字号:

  00000			 AREA	 |.pdata$$?ReleaseCS@CPCIDisk@@UAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?ReleaseCS@CPCIDisk@@UAAXXZ| } ; comdat associative
|$T32429| DCD	|$L32428|
	DCD	0x40000903
; Function compile flags: /Odt

  00000			 AREA	 |.text| { |?ReleaseCS@CPCIDisk@@UAAXXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?ReleaseCS@CPCIDisk@@UAAXXZ| PROC	; CPCIDisk::ReleaseCS

; 72   :     inline virtual void CPCIDisk::ReleaseCS() {

  00000		 |$L32428|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0001	 stmdb       sp!, {r0}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c		 |$M32426|

; 73   :         m_pPort->ReleaseCS();

  0000c	e59d3008	 ldr         r3, [sp, #8]
  00010	e283303c	 add         r3, r3, #0x3C
  00014	e5930000	 ldr         r0, [r3]
  00018	eb000000	 bl          |?ReleaseCS@CPort@@QAAXXZ|

; 74   :     }

  0001c	e89d6000	 ldmia       sp, {sp, lr}
  00020	e12fff1e	 bx          lr
  00024		 |$M32427|

			 ENDP  ; |?ReleaseCS@CPCIDisk@@UAAXXZ|, CPCIDisk::ReleaseCS

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

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

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

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

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

			 ENDP  ; |??_GCPCIDisk@@UAAPAXI@Z|, CPCIDisk::`scalar deleting destructor'

	EXPORT	|?FreeDMABuffers@CPCIDisk@@QAAXXZ|	; CPCIDisk::FreeDMABuffers
	EXPORT	|??_C@_1FM@JMDIDHPB@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAP?$AAC?$AAI?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AA?$HO?$AAC?$AAP?$AAC@| [ DATA ] ; `string'
	IMPORT	|??1CDisk@@UAA@XZ|			; CDisk::~CDisk
	IMPORT	|InterlockedDecrement|

  00010			 AREA	 |.pdata|, PDATA
|$T32446| DCD	|$L32445|
	DCD	0x40002504
; File d:\wince500\platform\smdk2440\drivers\atapi\atapipci.cpp

  00000			 AREA	 |.rdata| { |??_C@_1FM@JMDIDHPB@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAP?$AAC?$AAI?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AA?$HO?$AAC?$AAP?$AAC@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1FM@JMDIDHPB@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAP?$AAC?$AAI?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AA?$HO?$AAC?$AAP?$AAC@| 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, "~", 0x0, "C", 0x0, "P"
	DCB	0x0, "C", 0x0, "I", 0x0, "D", 0x0, "i", 0x0, "s", 0x0, "k"
	DCB	0x0, ">", 0x0, " ", 0x0, "d", 0x0, "e", 0x0, "v", 0x0, "i"
	DCB	0x0, "c", 0x0, "e", 0x0, " ", 0x0, "c", 0x0, "o", 0x0, "u"
	DCB	0x0, "n", 0x0, "t", 0x0, "(", 0x0, "%", 0x0, "d", 0x0, ")"
	DCB	0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0	; `string'
; Function compile flags: /Odt

  001dc			 AREA	 |.text|, CODE, ARM

  001dc		 |??1CPCIDisk@@UAA@XZ| PROC		; CPCIDisk::~CPCIDisk

; 89   : {

  001dc		 |$L32445|
  001dc	e1a0c00d	 mov         r12, sp
  001e0	e92d0001	 stmdb       sp!, {r0}
  001e4	e92d5000	 stmdb       sp!, {r12, lr}
  001e8	e24dd004	 sub         sp, sp, #4
  001ec		 |$M32443|
  001ec	e59f2078	 ldr         r2, [pc, #0x78]
  001f0	e59d300c	 ldr         r3, [sp, #0xC]
  001f4	e5832000	 str         r2, [r3]

; 90   :     FreeDMABuffers();

  001f8	e59d000c	 ldr         r0, [sp, #0xC]
  001fc	eb000000	 bl          |?FreeDMABuffers@CPCIDisk@@QAAXXZ|

; 91   : 
; 92   :     InterlockedDecrement(&m_lDeviceCount);

  00200	e59f005c	 ldr         r0, [pc, #0x5C]
  00204	eb000000	 bl          InterlockedDecrement

; 93   : 
; 94   :     DEBUGMSG(ZONE_INIT|ZONE_PCI, (_T(
; 95   :         "Atapi!CPCIDisk::~CPCIDisk> device count(%d)\r\n"
; 96   :         ), m_lDeviceCount));

  00208	e59f3058	 ldr         r3, [pc, #0x58]
  0020c	e5933440	 ldr         r3, [r3, #0x440]
  00210	e2032001	 and         r2, r3, #1
  00214	e59f304c	 ldr         r3, [pc, #0x4C]
  00218	e5933440	 ldr         r3, [r3, #0x440]
  0021c	e2033020	 and         r3, r3, #0x20
  00220	e1923003	 orrs        r3, r2, r3
  00224	0a000006	 beq         |$L32441|
  00228	e59f3034	 ldr         r3, [pc, #0x34]
  0022c	e5931000	 ldr         r1, [r3]
  00230	e59f0028	 ldr         r0, [pc, #0x28]
  00234	eb000000	 bl          NKDbgPrintfW
  00238	e3a03001	 mov         r3, #1
  0023c	e58d3000	 str         r3, [sp]
  00240	ea000001	 b           |$L32442|
  00244		 |$L32441|
  00244	e3a03000	 mov         r3, #0
  00248	e58d3000	 str         r3, [sp]
  0024c		 |$L32442|

; 97   : }

  0024c	e59d000c	 ldr         r0, [sp, #0xC]
  00250	eb000000	 bl          |??1CDisk@@UAA@XZ|
  00254	e28dd004	 add         sp, sp, #4
  00258	e89d6000	 ldmia       sp, {sp, lr}
  0025c	e12fff1e	 bx          lr
  00260		 |$L32447|
  00260	00000000	 DCD         |??_C@_1FM@JMDIDHPB@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAP?$AAC?$AAI?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AA?$HO?$AAC?$AAP?$AAC@|
  00264	00000000	 DCD         |?m_lDeviceCount@CPCIDisk@@2JA|
  00268	00000000	 DCD         |dpCurSettings|
  0026c	00000000	 DCD         |??_7CPCIDisk@@6B@|
  00270		 |$M32444|

			 ENDP  ; |??1CPCIDisk@@UAA@XZ|, CPCIDisk::~CPCIDisk

	IMPORT	|VirtualFree|
	IMPORT	|FreePhysMem|

  00018			 AREA	 |.pdata|, PDATA
|$T32452| DCD	|$L32451|
	DCD	0x40007d04
; Function compile flags: /Odt

  00270			 AREA	 |.text|, CODE, ARM

  00270		 |?FreeDMABuffers@CPCIDisk@@QAAXXZ| PROC ; CPCIDisk::FreeDMABuffers

; 110  : {

  00270		 |$L32451|
  00270	e1a0c00d	 mov         r12, sp
  00274	e92d0001	 stmdb       sp!, {r0}
  00278	e92d5000	 stmdb       sp!, {r12, lr}
  0027c	e24dd004	 sub         sp, sp, #4
  00280		 |$M32449|

; 111  :     if (m_pPRD) {

  00280	e59d300c	 ldr         r3, [sp, #0xC]
  00284	e2833c07	 add         r3, r3, #7, 24
  00288	e283304c	 add         r3, r3, #0x4C
  0028c	e5933000	 ldr         r3, [r3]
  00290	e3530000	 cmp         r3, #0
  00294	0a00000d	 beq         |$L32046|

; 112  :         FreePhysMem(m_pPRD);

  00298	e59d300c	 ldr         r3, [sp, #0xC]
  0029c	e2833c07	 add         r3, r3, #7, 24
  002a0	e283304c	 add         r3, r3, #0x4C
  002a4	e5930000	 ldr         r0, [r3]
  002a8	eb000000	 bl          FreePhysMem

; 113  :         m_pPRDPhys = NULL;

  002ac	e59d300c	 ldr         r3, [sp, #0xC]
  002b0	e2832e76	 add         r2, r3, #0x76, 28
  002b4	e3a03000	 mov         r3, #0
  002b8	e5823000	 str         r3, [r2]

; 114  :         m_pPRD = NULL;

  002bc	e59d300c	 ldr         r3, [sp, #0xC]
  002c0	e2833c07	 add         r3, r3, #7, 24
  002c4	e283204c	 add         r2, r3, #0x4C
  002c8	e3a03000	 mov         r3, #0
  002cc	e5823000	 str         r3, [r2]
  002d0		 |$L32046|

; 115  :     }
; 116  : 
; 117  :     if (m_pPhysList) {

  002d0	e59d300c	 ldr         r3, [sp, #0xC]
  002d4	e2833e75	 add         r3, r3, #0x75, 28
  002d8	e5933000	 ldr         r3, [r3]
  002dc	e3530000	 cmp         r3, #0
  002e0	0a00001e	 beq         |$L32047|

; 118  :         // free the fixed pages; the variable pages should already be free
; 119  :         for (DWORD i = 0; i < MIN_PHYS_PAGES; i++) {

  002e4	e3a03000	 mov         r3, #0
  002e8	e58d3000	 str         r3, [sp]
  002ec	ea000002	 b           |$L32049|
  002f0		 |$L32050|
  002f0	e59d3000	 ldr         r3, [sp]
  002f4	e2833001	 add         r3, r3, #1
  002f8	e58d3000	 str         r3, [sp]
  002fc		 |$L32049|
  002fc	e59d3000	 ldr         r3, [sp]
  00300	e3530004	 cmp         r3, #4
  00304	2a000009	 bcs         |$L32051|

; 120  :             FreePhysMem(m_pPhysList[i].pVirtualAddress);

  00308	e59d300c	 ldr         r3, [sp, #0xC]
  0030c	e2830e75	 add         r0, r3, #0x75, 28
  00310	e59d1000	 ldr         r1, [sp]
  00314	e3a03008	 mov         r3, #8
  00318	e0020391	 mul         r2, r1, r3
  0031c	e5903000	 ldr         r3, [r0]
  00320	e0833002	 add         r3, r3, r2
  00324	e5930000	 ldr         r0, [r3]
  00328	eb000000	 bl          FreePhysMem

; 121  :         }

  0032c	eaffffef	 b           |$L32050|
  00330		 |$L32051|

; 122  :         VirtualFree(m_pPhysList, UserKInfo[KINX_PAGESIZE], MEM_DECOMMIT);

  00330	e3a02901	 mov         r2, #1, 18
  00334	e3a03004	 mov         r3, #4
  00338	e2433c35	 sub         r3, r3, #0x35, 24
  0033c	e5931000	 ldr         r1, [r3]
  00340	e59d300c	 ldr         r3, [sp, #0xC]
  00344	e2833e75	 add         r3, r3, #0x75, 28
  00348	e5930000	 ldr         r0, [r3]
  0034c	eb000000	 bl          VirtualFree

; 123  :         m_pPhysList = NULL;

  00350	e59d300c	 ldr         r3, [sp, #0xC]
  00354	e2832e75	 add         r2, r3, #0x75, 28
  00358	e3a03000	 mov         r3, #0
  0035c	e5823000	 str         r3, [r2]
  00360		 |$L32047|

; 124  :     }
; 125  : 
; 126  :     if (m_pSGCopy) {

  00360	e59d300c	 ldr         r3, [sp, #0xC]
  00364	e2833c07	 add         r3, r3, #7, 24
  00368	e2833054	 add         r3, r3, #0x54
  0036c	e5933000	 ldr         r3, [r3]
  00370	e3530000	 cmp         r3, #0
  00374	0a00000d	 beq         |$L32054|

; 127  :         VirtualFree(m_pSGCopy, UserKInfo[KINX_PAGESIZE], MEM_DECOMMIT);

  00378	e3a02901	 mov         r2, #1, 18
  0037c	e3a03004	 mov         r3, #4
  00380	e2433c35	 sub         r3, r3, #0x35, 24
  00384	e5931000	 ldr         r1, [r3]
  00388	e59d300c	 ldr         r3, [sp, #0xC]
  0038c	e2833c07	 add         r3, r3, #7, 24
  00390	e2833054	 add         r3, r3, #0x54
  00394	e5930000	 ldr         r0, [r3]
  00398	eb000000	 bl          VirtualFree

; 128  :         m_pSGCopy = NULL;

  0039c	e59d300c	 ldr         r3, [sp, #0xC]
  003a0	e2833c07	 add         r3, r3, #7, 24
  003a4	e2832054	 add         r2, r3, #0x54
  003a8	e3a03000	 mov         r3, #0
  003ac	e5823000	 str         r3, [r2]
  003b0		 |$L32054|

; 129  :     }
; 130  : 
; 131  :     if (m_pPFNs) {

  003b0	e59d300c	 ldr         r3, [sp, #0xC]
  003b4	e2833c07	 add         r3, r3, #7, 24
  003b8	e2833058	 add         r3, r3, #0x58
  003bc	e5933000	 ldr         r3, [r3]
  003c0	e3530000	 cmp         r3, #0
  003c4	0a00000d	 beq         |$L32057|

; 132  :         VirtualFree(m_pPFNs, UserKInfo[KINX_PAGESIZE], MEM_DECOMMIT);

  003c8	e3a02901	 mov         r2, #1, 18
  003cc	e3a03004	 mov         r3, #4
  003d0	e2433c35	 sub         r3, r3, #0x35, 24
  003d4	e5931000	 ldr         r1, [r3]
  003d8	e59d300c	 ldr         r3, [sp, #0xC]
  003dc	e2833c07	 add         r3, r3, #7, 24
  003e0	e2833058	 add         r3, r3, #0x58
  003e4	e5930000	 ldr         r0, [r3]
  003e8	eb000000	 bl          VirtualFree

; 133  :         m_pSGCopy = NULL;

  003ec	e59d300c	 ldr         r3, [sp, #0xC]
  003f0	e2833c07	 add         r3, r3, #7, 24
  003f4	e2832054	 add         r2, r3, #0x54
  003f8	e3a03000	 mov         r3, #0
  003fc	e5823000	 str         r3, [r2]
  00400		 |$L32057|

; 134  :     }
; 135  : 
; 136  :     VirtualFree(m_pStartMemory, 0, MEM_RELEASE);

  00400	e3a02902	 mov         r2, #2, 18
  00404	e3a01000	 mov         r1, #0
  00408	e59d300c	 ldr         r3, [sp, #0xC]
  0040c	e2833c07	 add         r3, r3, #7, 24
  00410	e2833048	 add         r3, r3, #0x48

⌨️ 快捷键说明

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