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

📄 diskmain.cod

📁 windows CE 的BSP开发包.包含众多的驱动程序和OAL层的开发代码
💻 COD
📖 第 1 页 / 共 5 页
字号:

	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
|$T33023| DCD	|$L33022|
	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		 |$L33022|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004	e24dd014	 sub         sp, sp, #0x14
  00008		 |$M33020|

; 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         |$L31616|
  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		 |$L31616|

; 260  :         return bStatus;
; 261  :     }

  00060	e28dd014	 add         sp, sp, #0x14
  00064	e8bd4010	 ldmia       sp!, {r4, lr}
  00068	e12fff1e	 bx          lr
  0006c		 |$L33025|
  0006c	00000000	 DCD         |?dpCurSettings@@3U_DBGPARAM@@A|
  00070		 |$M33021|

			 ENDP  ; |?GetBaseStatus@CDisk@@QAAEXZ|, CDisk::GetBaseStatus

	EXPORT	|?WriteCommand@CDisk@@QAAXE@Z|		; CDisk::WriteCommand

  00000			 AREA	 |.text| { |?WriteCommand@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?WriteCommand@CDisk@@QAAXE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?WriteCommand@CDisk@@QAAXE@Z| } ; comdat associative
|$T33033| DCD	|$L33032|
	DCD	0x40000701
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?WriteCommand@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?WriteCommand@CDisk@@QAAXE@Z| PROC	; CDisk::WriteCommand

; 263  :     inline void WriteCommand(BYTE bCommand) {

  00000		 |$L33032|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33030|

; 264  :         ATA_WRITE_BYTE(m_pATAReg + m_dwCommandStatusOffset, bCommand);

  00004	e5902030	 ldr         r2, [r0, #0x30]
  00008	e5903024	 ldr         r3, [r0, #0x24]
  0000c	e0820003	 add         r0, r2, r3
  00010	eb000000	 bl          WRITE_PORT_UCHAR

; 265  :     }

  00014	e49de004	 ldr         lr, [sp], #4
  00018	e12fff1e	 bx          lr
  0001c		 |$M33031|

			 ENDP  ; |?WriteCommand@CDisk@@QAAXE@Z|, CDisk::WriteCommand

	EXPORT	|?GetAltStatus@CDisk@@QAAEXZ|		; CDisk::GetAltStatus

  00000			 AREA	 |.text| { |?GetAltStatus@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?GetAltStatus@CDisk@@QAAEXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetAltStatus@CDisk@@QAAEXZ| } ; comdat associative
|$T33043| DCD	|$L33042|
	DCD	0x40000701
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?GetAltStatus@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?GetAltStatus@CDisk@@QAAEXZ| PROC	; CDisk::GetAltStatus

; 267  :     inline BYTE GetAltStatus() {

  00000		 |$L33042|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33040|

; 268  :         return (BYTE) ATA_READ_BYTE(m_pATARegAlt + m_dwAltStatusOffset);

  00004	e5902034	 ldr         r2, [r0, #0x34]
  00008	e5903028	 ldr         r3, [r0, #0x28]
  0000c	e0820003	 add         r0, r2, r3
  00010	eb000000	 bl          READ_PORT_UCHAR

; 269  :     }

  00014	e49de004	 ldr         lr, [sp], #4
  00018	e12fff1e	 bx          lr
  0001c		 |$M33041|

			 ENDP  ; |?GetAltStatus@CDisk@@QAAEXZ|, CDisk::GetAltStatus

	EXPORT	|?WriteAltDriveController@CDisk@@QAAXE@Z| ; CDisk::WriteAltDriveController

  00000			 AREA	 |.text| { |?WriteAltDriveController@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?WriteAltDriveController@CDisk@@QAAXE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?WriteAltDriveController@CDisk@@QAAXE@Z| } ; comdat associative
|$T33052| DCD	|$L33051|
	DCD	0x40000701
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?WriteAltDriveController@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?WriteAltDriveController@CDisk@@QAAXE@Z| PROC ; CDisk::WriteAltDriveController

; 270  :     inline void WriteAltDriveController(BYTE bData) {

  00000		 |$L33051|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M33049|

; 271  :         ATA_WRITE_BYTE(m_pATARegAlt + m_dwAltDrvCtrl, bData);

  00004	e5902034	 ldr         r2, [r0, #0x34]
  00008	e590302c	 ldr         r3, [r0, #0x2C]
  0000c	e0820003	 add         r0, r2, r3
  00010	eb000000	 bl          WRITE_PORT_UCHAR

; 272  :     }

  00014	e49de004	 ldr         lr, [sp], #4
  00018	e12fff1e	 bx          lr
  0001c		 |$M33050|

			 ENDP  ; |?WriteAltDriveController@CDisk@@QAAXE@Z|, CDisk::WriteAltDriveController

	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'
; File d:\wince500\platform\smdk2440\drivers\atapi\diskmain.cpp

  00000			 AREA	 |.text| { |??0CDisk@@QAA@XZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$??0CDisk@@QAA@XZ|, PDATA, SELECTION=5, ASSOC=|.text| { |??0CDisk@@QAA@XZ| } ; comdat associative
|$T33062| DCD	|$L33061|
	DCD	0x40000500

  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: /Ogsy

  00000			 AREA	 |.text| { |??0CDisk@@QAA@XZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

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

; 36   : {

  00000		 |$L33061|
  00000		 |$M33059|
  00000	e1a02000	 mov         r2, r0
  00004	e59f3004	 ldr         r3, [pc, #4]

; 37   :     // empty
; 38   : }

  00008	e5823000	 str         r3, [r2]
  0000c	e12fff1e	 bx          lr
  00010		 |$L33064|
  00010	00000000	 DCD         |??_7CDisk@@6B@|
  00014		 |$M33060|

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

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

  00000			 AREA	 |.text| { |??0CDisk@@QAA@PAUHKEY__@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$??0CDisk@@QAA@PAUHKEY__@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |??0CDisk@@QAA@PAUHKEY__@@@Z| } ; comdat associative
|$T33075| DCD	|$L33074|
	DCD	0x40002e01
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |??0CDisk@@QAA@PAUHKEY__@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

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

; 51   : {

  00000		 |$L33074|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M33072|
  00004	e1a04000	 mov         r4, r0
  00008	e59f30a4	 ldr         r3, [pc, #0xA4]

; 52   :     m_dwDeviceFlags = 0;
; 53   :     m_pNextDisk = NULL;
; 54   :     m_pATAReg = NULL;

  0000c	e3a0e000	 mov         lr, #0

; 55   :     m_pATARegAlt = NULL;
; 56   :     m_dwDevice = 0;
; 57   :     m_hDevKey = hKey;
; 58   :     m_dwDeviceId = 0;
; 59   :     m_dwPort = 0;
; 60   :     m_f16Bit = FALSE;
; 61   :     m_fAtapiDevice = FALSE;
; 62   :     m_fInterruptSupported = FALSE;
; 63   :     m_szDiskName = NULL;
; 64   :     m_fDMAActive = FALSE;
; 65   :     m_dwOpenCount = 0;
; 66   :     m_dwUnitReadyTime = 0;
; 67   :     m_dwStateFlag = 0;
; 68   :     m_dwLastCheckTime = 0;
; 69   :     m_dwStride = 1;

  00010	e3a02001	 mov         r2, #1
  00014	e584e030	 str         lr, [r4, #0x30]

; 70   :     m_pDiskPower = NULL;
; 71   :     m_rgbDoubleBuffer = NULL;
; 72   : 
; 73   :     m_pPort = NULL;
; 74   : 
; 75   :     // init generic structures
; 76   :     InitializeCriticalSection(&m_csDisk);

  00018	e2840054	 add         r0, r4, #0x54
  0001c	e5843000	 str         r3, [r4]
  00020	e584e690	 str         lr, [r4, #0x690]
  00024	e584e06c	 str         lr, [r4, #0x6C]
  00028	e584e034	 str         lr, [r4, #0x34]
  0002c	e584e484	 str         lr, [r4, #0x484]
  00030	e5841480	 str         r1, [r4, #0x480]
  00034	e584e488	 str         lr, [r4, #0x488]
  00038	e584e48c	 str         lr, [r4, #0x48C]
  0003c	e584e038	 str         lr, [r4, #0x38]
  00040	e584e698	 str         lr, [r4, #0x698]
  00044	e584e040	 str         lr, [r4, #0x40]
  00048	e584e6b8	 str         lr, [r4, #0x6B8]
  0004c	e584e044	 str         lr, [r4, #0x44]
  00050	e584e068	 str         lr, [r4, #0x68]
  00054	e584e6cc	 str         lr, [r4, #0x6CC]
  00058	e584e6e0	 str         lr, [r4, #0x6E0]
  0005c	e584e6d0	 str         lr, [r4, #0x6D0]
  00060	e5842004	 str         r2, [r4, #4]
  00064	e584e6d4	 str         lr, [r4, #0x6D4]
  00068	e584e04c	 str         lr, [r4, #0x4C]
  0006c	e584e03c	 str         lr, [r4, #0x3C]
  00070	eb000000	 bl          InitializeCriticalSection

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

  00074	e3a02c02	 mov         r2, #2, 24
  00078	e3a01000	 mov         r1, #0
  0007c	e2840e49	 add         r0, r4, #0x49, 28
  00080	eb000000	 bl          memset

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

  00084	e3a02018	 mov         r2, #0x18
  00088	e3a01000	 mov         r1, #0
  0008c	e2840e6a	 add         r0, r4, #0x6A, 28
  00090	eb000000	 bl          memset

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

  00094	e2843c06	 add         r3, r4, #6, 24
  00098	e28300e4	 add         r0, r3, #0xE4
  0009c	e3a02060	 mov         r2, #0x60
  000a0	e3a01000	 mov         r1, #0
  000a4	eb000000	 bl          memset

; 80   : }

  000a8	e1a00004	 mov         r0, r4
  000ac	e8bd4010	 ldmia       sp!, {r4, lr}
  000b0	e12fff1e	 bx          lr
  000b4		 |$L33077|
  000b4	00000000	 DCD         |??_7CDisk@@6B@|
  000b8		 |$M33073|

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

	EXPORT	|??1CDisk@@UAA@XZ|			; CDisk::~CDisk
	IMPORT	|LocalFree|
	IMPORT	|RegCloseKey|
	IMPORT	|DeleteCriticalSection|

  00000			 AREA	 |.text| { |??1CDisk@@UAA@XZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$??1CDisk@@UAA@XZ|, PDATA, SELECTION=5, ASSOC=|.text| { |??1CDisk@@UAA@XZ| } ; comdat associative
|$T33089| DCD	|$L33088|
	DCD	0x40001801
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |??1CDisk@@UAA@XZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

⌨️ 快捷键说明

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