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

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

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


  00000			 AREA	 |.bss|, NOINIT
|g_hTestUnitReadyThread| % 0x4
	EXPORT	|??0CDisk@@QAA@XZ|			; CDisk::CDisk
	EXPORT	|?ConfigureRegisterBlock@CDisk@@UAAXK@Z| ; CDisk::ConfigureRegisterBlock
	EXPORT	|?Init@CDisk@@UAAHPAUHKEY__@@@Z|	; CDisk::Init
	EXPORT	|?InitController@CDisk@@UAAHH@Z|	; CDisk::InitController
	EXPORT	|?GetDeviceInfo@CDisk@@UAAKPAU_IOREQ@@@Z| ; CDisk::GetDeviceInfo
	EXPORT	|?MainIoctl@CDisk@@UAAKPAU_IOREQ@@@Z|	; CDisk::MainIoctl
	EXPORT	|?ReadWriteDiskDMA@CDisk@@UAAKPAU_IOREQ@@H@Z| ; CDisk::ReadWriteDiskDMA
	EXPORT	|?GetDiskPowerInterface@CDisk@@UAAPAVCDiskPower@@XZ| ; CDisk::GetDiskPowerInterface
	EXPORT	|?SetDiskPowerState@CDisk@@UAAHW4_CEDEVICE_POWER_STATE@@@Z| ; CDisk::SetDiskPowerState
	EXPORT	|?WakeUp@CDisk@@UAAHXZ|			; CDisk::WakeUp
	EXPORT	|?TakeCS@CDisk@@UAAXXZ|			; CDisk::TakeCS
	EXPORT	|?ReleaseCS@CDisk@@UAAXXZ|		; CDisk::ReleaseCS
	EXPORT	|??_7CDisk@@6B@| [ DATA ]		; CDisk::`vftable'
	EXPORT	|??_GCDisk@@UAAPAXI@Z|			; CDisk::`scalar deleting destructor'
	IMPORT	|_purecall|
	IMPORT	|?WaitForDRQ@CDisk@@UAAHXZ|		; CDisk::WaitForDRQ
	IMPORT	|?WaitForDisc@CDisk@@UAAHEKK@Z|		; CDisk::WaitForDisc
	IMPORT	|??_ECDisk@@UAAPAXI@Z|, WEAK |??_GCDisk@@UAAPAXI@Z| ; CDisk::`vector deleting destructor', CDisk::`scalar deleting destructor'

  00000			 AREA	 |.pdata|, PDATA
|$T32912| DCD	|$L32911|
	DCD	0x40000e04
; File d:\wince500\platform\smdk2440\drivers\atapi\diskmain.cpp

  00000			 AREA	 |.rdata| { |??_7CDisk@@6B@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_7CDisk@@6B@| DCD |??_ECDisk@@UAAPAXI@Z|		; CDisk::`vftable'
	DCD	|?ConfigureRegisterBlock@CDisk@@UAAXK@Z|
	DCD	|?Init@CDisk@@UAAHPAUHKEY__@@@Z|
	DCD	|?InitController@CDisk@@UAAHH@Z|
	DCD	|?GetDeviceInfo@CDisk@@UAAKPAU_IOREQ@@@Z|
	DCD	|?MainIoctl@CDisk@@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@CDisk@@UAAXXZ|
	DCD	|?ReleaseCS@CDisk@@UAAXXZ|
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|_purecall|
	DCD	|_purecall|
; Function compile flags: /Odt

  00000			 AREA	 |.text|, CODE, ARM

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

; 36   : {

  00000		 |$L32911|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0001	 stmdb       sp!, {r0}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd004	 sub         sp, sp, #4
  00010		 |$M32909|
  00010	e59f201c	 ldr         r2, [pc, #0x1C]
  00014	e59d300c	 ldr         r3, [sp, #0xC]
  00018	e5832000	 str         r2, [r3]

; 37   :     // empty
; 38   : }

  0001c	e59d300c	 ldr         r3, [sp, #0xC]
  00020	e58d3000	 str         r3, [sp]
  00024	e59d0000	 ldr         r0, [sp]
  00028	e28dd004	 add         sp, sp, #4
  0002c	e89d6000	 ldmia       sp, {sp, lr}
  00030	e12fff1e	 bx          lr
  00034		 |$L32913|
  00034	00000000	 DCD         |??_7CDisk@@6B@|
  00038		 |$M32910|

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

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

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

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

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

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

			 ENDP  ; |??_GCDisk@@UAAPAXI@Z|, CDisk::`scalar deleting destructor'

	EXPORT	|??0CDisk@@QAA@PAUHKEY__@@@Z|		; CDisk::CDisk
	IMPORT	|memset|
	IMPORT	|InitializeCriticalSection|

  00008			 AREA	 |.pdata|, PDATA
|$T32927| DCD	|$L32926|
	DCD	0x40007c04
; Function compile flags: /Odt

  00038			 AREA	 |.text|, CODE, ARM

  00038		 |??0CDisk@@QAA@PAUHKEY__@@@Z| PROC	; CDisk::CDisk

; 51   : {

  00038		 |$L32926|
  00038	e1a0c00d	 mov         r12, sp
  0003c	e92d0003	 stmdb       sp!, {r0, r1}
  00040	e92d5000	 stmdb       sp!, {r12, lr}
  00044	e24dd004	 sub         sp, sp, #4
  00048		 |$M32924|
  00048	e59f21d4	 ldr         r2, [pc, #0x1D4]
  0004c	e59d300c	 ldr         r3, [sp, #0xC]
  00050	e5832000	 str         r2, [r3]

; 52   :     m_dwDeviceFlags = 0;

  00054	e59d300c	 ldr         r3, [sp, #0xC]
  00058	e2832e69	 add         r2, r3, #0x69, 28
  0005c	e3a03000	 mov         r3, #0
  00060	e5823000	 str         r3, [r2]

; 53   :     m_pNextDisk = NULL;

  00064	e59d300c	 ldr         r3, [sp, #0xC]
  00068	e283206c	 add         r2, r3, #0x6C
  0006c	e3a03000	 mov         r3, #0
  00070	e5823000	 str         r3, [r2]

; 54   :     m_pATAReg = NULL;

  00074	e59d300c	 ldr         r3, [sp, #0xC]
  00078	e2832030	 add         r2, r3, #0x30
  0007c	e3a03000	 mov         r3, #0
  00080	e5823000	 str         r3, [r2]

; 55   :     m_pATARegAlt = NULL;

  00084	e59d300c	 ldr         r3, [sp, #0xC]
  00088	e2832034	 add         r2, r3, #0x34
  0008c	e3a03000	 mov         r3, #0
  00090	e5823000	 str         r3, [r2]

; 56   :     m_dwDevice = 0;

  00094	e59d300c	 ldr         r3, [sp, #0xC]
  00098	e2833b01	 add         r3, r3, #1, 22
  0009c	e2832084	 add         r2, r3, #0x84
  000a0	e3a03000	 mov         r3, #0
  000a4	e5823000	 str         r3, [r2]

; 57   :     m_hDevKey = hKey;

  000a8	e59d300c	 ldr         r3, [sp, #0xC]
  000ac	e2832d12	 add         r2, r3, #0x12, 26
  000b0	e59d3010	 ldr         r3, [sp, #0x10]
  000b4	e5823000	 str         r3, [r2]

; 58   :     m_dwDeviceId = 0;

  000b8	e59d300c	 ldr         r3, [sp, #0xC]
  000bc	e2833b01	 add         r3, r3, #1, 22
  000c0	e2832088	 add         r2, r3, #0x88
  000c4	e3a03000	 mov         r3, #0
  000c8	e5823000	 str         r3, [r2]

; 59   :     m_dwPort = 0;

  000cc	e59d300c	 ldr         r3, [sp, #0xC]
  000d0	e2833b01	 add         r3, r3, #1, 22
  000d4	e283208c	 add         r2, r3, #0x8C
  000d8	e3a03000	 mov         r3, #0
  000dc	e5823000	 str         r3, [r2]

; 60   :     m_f16Bit = FALSE;

  000e0	e59d300c	 ldr         r3, [sp, #0xC]
  000e4	e2832038	 add         r2, r3, #0x38
  000e8	e3a03000	 mov         r3, #0
  000ec	e5823000	 str         r3, [r2]

; 61   :     m_fAtapiDevice = FALSE;

  000f0	e59d300c	 ldr         r3, [sp, #0xC]
  000f4	e2833c06	 add         r3, r3, #6, 24
  000f8	e2832098	 add         r2, r3, #0x98
  000fc	e3a03000	 mov         r3, #0
  00100	e5823000	 str         r3, [r2]

; 62   :     m_fInterruptSupported = FALSE;

  00104	e59d300c	 ldr         r3, [sp, #0xC]
  00108	e2832040	 add         r2, r3, #0x40
  0010c	e3a03000	 mov         r3, #0
  00110	e5823000	 str         r3, [r2]

; 63   :     m_szDiskName = NULL;

  00114	e59d300c	 ldr         r3, [sp, #0xC]
  00118	e2833c06	 add         r3, r3, #6, 24
  0011c	e28320b8	 add         r2, r3, #0xB8
  00120	e3a03000	 mov         r3, #0
  00124	e5823000	 str         r3, [r2]

; 64   :     m_fDMAActive = FALSE;

  00128	e59d300c	 ldr         r3, [sp, #0xC]
  0012c	e2832044	 add         r2, r3, #0x44
  00130	e3a03000	 mov         r3, #0
  00134	e5823000	 str         r3, [r2]

; 65   :     m_dwOpenCount = 0;

  00138	e59d300c	 ldr         r3, [sp, #0xC]
  0013c	e2832068	 add         r2, r3, #0x68
  00140	e3a03000	 mov         r3, #0
  00144	e5823000	 str         r3, [r2]

; 66   :     m_dwUnitReadyTime = 0;

  00148	e59d300c	 ldr         r3, [sp, #0xC]
  0014c	e2833c06	 add         r3, r3, #6, 24
  00150	e28320cc	 add         r2, r3, #0xCC
  00154	e3a03000	 mov         r3, #0
  00158	e5823000	 str         r3, [r2]

; 67   :     m_dwStateFlag = 0;

  0015c	e59d300c	 ldr         r3, [sp, #0xC]
  00160	e2832e6e	 add         r2, r3, #0x6E, 28
  00164	e3a03000	 mov         r3, #0
  00168	e5823000	 str         r3, [r2]

; 68   :     m_dwLastCheckTime = 0;

  0016c	e59d300c	 ldr         r3, [sp, #0xC]
  00170	e2832e6d	 add         r2, r3, #0x6D, 28
  00174	e3a03000	 mov         r3, #0
  00178	e5823000	 str         r3, [r2]

; 69   :     m_dwStride = 1;

  0017c	e59d300c	 ldr         r3, [sp, #0xC]
  00180	e2832004	 add         r2, r3, #4
  00184	e3a03001	 mov         r3, #1
  00188	e5823000	 str         r3, [r2]

; 70   :     m_pDiskPower = NULL;

  0018c	e59d300c	 ldr         r3, [sp, #0xC]
  00190	e2833c06	 add         r3, r3, #6, 24
  00194	e28320d4	 add         r2, r3, #0xD4
  00198	e3a03000	 mov         r3, #0
  0019c	e5823000	 str         r3, [r2]

; 71   :     m_rgbDoubleBuffer = NULL;

  001a0	e59d300c	 ldr         r3, [sp, #0xC]
  001a4	e283204c	 add         r2, r3, #0x4C
  001a8	e3a03000	 mov         r3, #0
  001ac	e5823000	 str         r3, [r2]

; 72   : 
; 73   :     m_pPort = NULL;

  001b0	e59d300c	 ldr         r3, [sp, #0xC]
  001b4	e283203c	 add         r2, r3, #0x3C
  001b8	e3a03000	 mov         r3, #0
  001bc	e5823000	 str         r3, [r2]

; 74   : 
; 75   :     // init generic structures
; 76   :     InitializeCriticalSection(&m_csDisk);

  001c0	e59d300c	 ldr         r3, [sp, #0xC]
  001c4	e2830054	 add         r0, r3, #0x54
  001c8	eb000000	 bl          InitializeCriticalSection

; 77   :     memset(&m_Id, 0, sizeof(IDENTIFY_DATA));

  001cc	e3a02c02	 mov         r2, #2, 24
  001d0	e3a01000	 mov         r1, #0
  001d4	e59d300c	 ldr         r3, [sp, #0xC]
  001d8	e2830e49	 add         r0, r3, #0x49, 28
  001dc	eb000000	 bl          memset

; 78   :     memset(&m_DiskInfo, 0, sizeof(DISK_INFO));

  001e0	e3a02018	 mov         r2, #0x18
  001e4	e3a01000	 mov         r1, #0
  001e8	e59d300c	 ldr         r3, [sp, #0xC]
  001ec	e2830e6a	 add         r0, r3, #0x6A, 28
  001f0	eb000000	 bl          memset

; 79   :     memset(&m_InqData, 0, sizeof(INQUIRY_DATA));

  001f4	e3a02060	 mov         r2, #0x60
  001f8	e3a01000	 mov         r1, #0
  001fc	e59d300c	 ldr         r3, [sp, #0xC]
  00200	e2833c06	 add         r3, r3, #6, 24
  00204	e28300e4	 add         r0, r3, #0xE4
  00208	eb000000	 bl          memset

; 80   : }

  0020c	e59d300c	 ldr         r3, [sp, #0xC]
  00210	e58d3000	 str         r3, [sp]
  00214	e59d0000	 ldr         r0, [sp]
  00218	e28dd004	 add         sp, sp, #4
  0021c	e89d6000	 ldmia       sp, {sp, lr}
  00220	e12fff1e	 bx          lr
  00224		 |$L32928|
  00224	00000000	 DCD         |??_7CDisk@@6B@|
  00228		 |$M32925|

			 ENDP  ; |??0CDisk@@QAA@PAUHKEY__@@@Z|, CDisk::CDisk

	IMPORT	|LocalFree|
	IMPORT	|RegCloseKey|
	IMPORT	|DeleteCriticalSection|

  00010			 AREA	 |.pdata|, PDATA
|$T32937| DCD	|$L32936|
	DCD	0x40003d04

⌨️ 快捷键说明

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