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

📄 diskmain.cod

📁 windows CE 的BSP开发包.包含众多的驱动程序和OAL层的开发代码
💻 COD
📖 第 1 页 / 共 5 页
字号:
  00000			 AREA	 |.text| { |?IsDMASupported@CDisk@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?IsDMASupported@CDisk@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?IsDMASupported@CDisk@@QAAHXZ| } ; comdat associative
|$T33197| DCD	|$L33196|
	DCD	0x40000900
; Function compile flags: /Ogsy

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

  00000		 |?IsDMASupported@CDisk@@QAAHXZ| PROC	; CDisk::IsDMASupported

; 142  : BOOL CDisk::IsDMASupported()            { return ((m_Id.Capabilities & IDENTIFY_CAPABILITIES_DMA_SUPPORTED) && m_fDMAActive); }

  00000		 |$L33196|
  00000		 |$M33194|
  00000	e5d024f2	 ldrb        r2, [r0, #0x4F2]
  00004	e5d034f3	 ldrb        r3, [r0, #0x4F3]
  00008	e1823403	 orr         r3, r2, r3, lsl #8
  0000c	e3130c01	 tst         r3, #1, 24
  00010	15903044	 ldrne       r3, [r0, #0x44]
  00014	13530000	 cmpne       r3, #0
  00018	13a00001	 movne       r0, #1
  0001c	03a00000	 moveq       r0, #0
  00020	e12fff1e	 bx          lr
  00024		 |$M33195|

			 ENDP  ; |?IsDMASupported@CDisk@@QAAHXZ|, CDisk::IsDMASupported

	EXPORT	|?IsDRQTypeIRQ@CDisk@@QAAHXZ|		; CDisk::IsDRQTypeIRQ

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

  00000			 AREA	 |.pdata$$?IsDRQTypeIRQ@CDisk@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?IsDRQTypeIRQ@CDisk@@QAAHXZ| } ; comdat associative
|$T33209| DCD	|$L33208|
	DCD	0x40000800
; Function compile flags: /Ogsy

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

  00000		 |?IsDRQTypeIRQ@CDisk@@QAAHXZ| PROC	; CDisk::IsDRQTypeIRQ

; 143  : BOOL CDisk::IsDRQTypeIRQ()              { return ((m_Id.GeneralConfiguration >> 5) & 0x0003) == ATA_DRQTYPE_INTRQ; }

  00000		 |$L33208|
  00000		 |$M33206|
  00000	e5d02490	 ldrb        r2, [r0, #0x490]
  00004	e5d03491	 ldrb        r3, [r0, #0x491]
  00008	e1823403	 orr         r3, r2, r3, lsl #8
  0000c	e2033060	 and         r3, r3, #0x60
  00010	e3530020	 cmp         r3, #0x20
  00014	03a00001	 moveq       r0, #1
  00018	13a00000	 movne       r0, #0
  0001c	e12fff1e	 bx          lr
  00020		 |$M33207|

			 ENDP  ; |?IsDRQTypeIRQ@CDisk@@QAAHXZ|, CDisk::IsDRQTypeIRQ

	EXPORT	|?GetPacketSize@CDisk@@QAAGXZ|		; CDisk::GetPacketSize

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

  00000			 AREA	 |.pdata$$?GetPacketSize@CDisk@@QAAGXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetPacketSize@CDisk@@QAAGXZ| } ; comdat associative
|$T33221| DCD	|$L33220|
	DCD	0x40000900
; Function compile flags: /Ogsy

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

  00000		 |?GetPacketSize@CDisk@@QAAGXZ| PROC	; CDisk::GetPacketSize

; 144  : WORD CDisk::GetPacketSize()             { return m_Id.GeneralConfiguration & 0x0003 ? 16 : 12; }

  00000		 |$L33220|
  00000		 |$M33218|
  00000	e5d02490	 ldrb        r2, [r0, #0x490]
  00004	e5d03491	 ldrb        r3, [r0, #0x491]
  00008	e1823403	 orr         r3, r2, r3, lsl #8
  0000c	e3130003	 tst         r3, #3
  00010	13a03010	 movne       r3, #0x10
  00014	03a0300c	 moveq       r3, #0xC
  00018	e1a00803	 mov         r0, r3, lsl #16
  0001c	e1a00820	 mov         r0, r0, lsr #16
  00020	e12fff1e	 bx          lr
  00024		 |$M33219|

			 ENDP  ; |?GetPacketSize@CDisk@@QAAGXZ|, CDisk::GetPacketSize

	EXPORT	|?IsValidCommandSupportInfo@CDisk@@QAAHXZ| ; CDisk::IsValidCommandSupportInfo

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

  00000			 AREA	 |.pdata$$?IsValidCommandSupportInfo@CDisk@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?IsValidCommandSupportInfo@CDisk@@QAAHXZ| } ; comdat associative
|$T33233| DCD	|$L33232|
	DCD	0x40000a00
; Function compile flags: /Ogsy

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

  00000		 |?IsValidCommandSupportInfo@CDisk@@QAAHXZ| PROC ; CDisk::IsValidCommandSupportInfo

; 145  : BOOL CDisk::IsValidCommandSupportInfo() { return ((m_Id.CommandSetSupported2 & (1 << 14)) && !(m_Id.CommandSetSupported2 & (1 << 15))); }

  00000		 |$L33232|
  00000		 |$M33230|
  00000	e5d02536	 ldrb        r2, [r0, #0x536]
  00004	e5d03537	 ldrb        r3, [r0, #0x537]
  00008	e1823403	 orr         r3, r2, r3, lsl #8
  0000c	e3130901	 tst         r3, #1, 18
  00010	0a000002	 beq         |$L33225|
  00014	e3130902	 tst         r3, #2, 18
  00018	03a00001	 moveq       r0, #1
  0001c	012fff1e	 bxeq        lr
  00020		 |$L33225|
  00020	e3a00000	 mov         r0, #0
  00024	e12fff1e	 bx          lr
  00028		 |$M33231|

			 ENDP  ; |?IsValidCommandSupportInfo@CDisk@@QAAHXZ|, CDisk::IsValidCommandSupportInfo

	EXPORT	|?IsWriteCacheSupported@CDisk@@QAAHXZ|	; CDisk::IsWriteCacheSupported

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

  00000			 AREA	 |.pdata$$?IsWriteCacheSupported@CDisk@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?IsWriteCacheSupported@CDisk@@QAAHXZ| } ; comdat associative
|$T33253| DCD	|$L33252|
	DCD	0x40000f00
; Function compile flags: /Ogsy

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

  00000		 |?IsWriteCacheSupported@CDisk@@QAAHXZ| PROC ; CDisk::IsWriteCacheSupported

; 146  : BOOL CDisk::IsWriteCacheSupported()     { return ((m_Id.CommandSetSupported1 & COMMAND_SET_WRITE_CACHE_SUPPORTED) && IsValidCommandSupportInfo()); }

  00000		 |$L33252|
  00000		 |$M33250|
  00000	e5d02534	 ldrb        r2, [r0, #0x534]
  00004	e5d03535	 ldrb        r3, [r0, #0x535]
  00008	e1823403	 orr         r3, r2, r3, lsl #8
  0000c	e3130020	 tst         r3, #0x20
  00010	0a000007	 beq         |$L33237|
  00014	e5d02536	 ldrb        r2, [r0, #0x536]
  00018	e5d03537	 ldrb        r3, [r0, #0x537]
  0001c	e1823403	 orr         r3, r2, r3, lsl #8
  00020	e3130901	 tst         r3, #1, 18
  00024	0a000002	 beq         |$L33237|
  00028	e3130902	 tst         r3, #2, 18
  0002c	03a00001	 moveq       r0, #1
  00030	012fff1e	 bxeq        lr
  00034		 |$L33237|
  00034	e3a00000	 mov         r0, #0
  00038	e12fff1e	 bx          lr
  0003c		 |$M33251|

			 ENDP  ; |?IsWriteCacheSupported@CDisk@@QAAHXZ|, CDisk::IsWriteCacheSupported

	EXPORT	|?IsPMSupported@CDisk@@QAAHXZ|		; CDisk::IsPMSupported

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

  00000			 AREA	 |.pdata$$?IsPMSupported@CDisk@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?IsPMSupported@CDisk@@QAAHXZ| } ; comdat associative
|$T33273| DCD	|$L33272|
	DCD	0x40000f00
; Function compile flags: /Ogsy

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

  00000		 |?IsPMSupported@CDisk@@QAAHXZ| PROC	; CDisk::IsPMSupported

; 147  : BOOL CDisk::IsPMSupported()             { return (m_Id.CommandSetSupported1 & COMMAND_SET_POWER_MANAGEMENT_SUPPORTED && IsValidCommandSupportInfo()); }

  00000		 |$L33272|
  00000		 |$M33270|
  00000	e5d02534	 ldrb        r2, [r0, #0x534]
  00004	e5d03535	 ldrb        r3, [r0, #0x535]
  00008	e1823403	 orr         r3, r2, r3, lsl #8
  0000c	e3130008	 tst         r3, #8
  00010	0a000007	 beq         |$L33257|
  00014	e5d02536	 ldrb        r2, [r0, #0x536]
  00018	e5d03537	 ldrb        r3, [r0, #0x537]
  0001c	e1823403	 orr         r3, r2, r3, lsl #8
  00020	e3130901	 tst         r3, #1, 18
  00024	0a000002	 beq         |$L33257|
  00028	e3130902	 tst         r3, #2, 18
  0002c	03a00001	 moveq       r0, #1
  00030	012fff1e	 bxeq        lr
  00034		 |$L33257|
  00034	e3a00000	 mov         r0, #0
  00038	e12fff1e	 bx          lr
  0003c		 |$M33271|

			 ENDP  ; |?IsPMSupported@CDisk@@QAAHXZ|, CDisk::IsPMSupported

	EXPORT	|?IsPMEnabled@CDisk@@QAAHXZ|		; CDisk::IsPMEnabled

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

  00000			 AREA	 |.pdata$$?IsPMEnabled@CDisk@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?IsPMEnabled@CDisk@@QAAHXZ| } ; comdat associative
|$T33285| DCD	|$L33284|
	DCD	0x40000d01
; Function compile flags: /Ogsy

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

  00000		 |?IsPMEnabled@CDisk@@QAAHXZ| PROC	; CDisk::IsPMEnabled

; 148  : BOOL CDisk::IsPMEnabled()               { return (IsPMSupported() && (m_Id.CommandSetFeatureEnabled1 & COMMAND_SET_POWER_MANAGEMENT_ENABLED)); }

  00000		 |$L33284|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M33282|
  00004	e1a04000	 mov         r4, r0
  00008	eb000000	 bl          |?IsPMSupported@CDisk@@QAAHXZ|
  0000c	e3500000	 cmp         r0, #0
  00010	15d4253a	 ldrneb      r2, [r4, #0x53A]
  00014	15d4353b	 ldrneb      r3, [r4, #0x53B]
  00018	11823403	 orrne       r3, r2, r3, lsl #8
  0001c	13130008	 tstne       r3, #8
  00020	13a00001	 movne       r0, #1
  00024	18bd4010	 ldmneia     sp!, {r4, lr}
  00028	03a00000	 moveq       r0, #0
  0002c	08bd4010	 ldmeqia     sp!, {r4, lr}
  00030	e12fff1e	 bx          lr
  00034		 |$M33283|

			 ENDP  ; |?IsPMEnabled@CDisk@@QAAHXZ|, CDisk::IsPMEnabled

	EXPORT	|?SetActiveKey@CDisk@@QAAXPAG@Z|	; CDisk::SetActiveKey
	IMPORT	|wcsncpy|

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

  00000			 AREA	 |.pdata$$?SetActiveKey@CDisk@@QAAXPAG@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?SetActiveKey@CDisk@@QAAXPAG@Z| } ; comdat associative
|$T33295| DCD	|$L33294|
	DCD	0x40000b01
; Function compile flags: /Ogsy

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

  00000		 |?SetActiveKey@CDisk@@QAAXPAG@Z| PROC	; CDisk::SetActiveKey

; 152  : {

  00000		 |$L33294|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M33292|
  00004	e1a04000	 mov         r4, r0

; 153  :     wcsncpy(m_szActiveKey, szActiveKey, MAX_PATH - 1);

  00008	e3a02c01	 mov         r2, #1, 24
  0000c	e3822003	 orr         r2, r2, #3
  00010	e2840070	 add         r0, r4, #0x70
  00014	eb000000	 bl          wcsncpy

; 154  :     m_szActiveKey[MAX_PATH - 1] = 0;

  00018	e2843c02	 add         r3, r4, #2, 24
  0001c	e3a02000	 mov         r2, #0
  00020	e1c327b6	 strh        r2, [r3, #0x76]

; 155  : }

  00024	e8bd4010	 ldmia       sp!, {r4, lr}
  00028	e12fff1e	 bx          lr
  0002c		 |$M33293|

			 ENDP  ; |?SetActiveKey@CDisk@@QAAXPAG@Z|, CDisk::SetActiveKey

	EXPORT	|?SetDeviceKey@CDisk@@QAAXPAG@Z|	; CDisk::SetDeviceKey

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

  00000			 AREA	 |.pdata$$?SetDeviceKey@CDisk@@QAAXPAG@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?SetDeviceKey@CDisk@@QAAXPAG@Z| } ; comdat associative
|$T33304| DCD	|$L33303|
	DCD	0x40000b01
; Function compile flags: /Ogsy

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

  00000		 |?SetDeviceKey@CDisk@@QAAXPAG@Z| PROC	; CDisk::SetDeviceKey

; 158  : {

  00000		 |$L33303|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M33301|
  00004	e1a04000	 mov         r4, r0

; 159  :     wcsncpy(m_szDeviceKey, szDeviceKey, MAX_PATH - 1);

  00008	e3a02c01	 mov         r2, #1, 24
  0000c	e3822003	 orr         r2, r2, #3
  00010	e2840f9e	 add         r0, r4, #0x9E, 30
  00014	eb000000	 bl          wcsncpy

; 160  :     m_szDeviceKey[MAX_PATH - 1] = 0;

  00018	e2843b01	 add         r3, r4, #1, 22
  0001c	e3a02000	 mov         r2, #0
  00020	e1c327be	 strh        r2, [r3, #0x7E]

; 161  : }

  00024	e8bd4010	 ldmia       sp!, {r4, lr}
  00028	e12fff1e	 bx          lr
  0002c		 |$M33302|

			 ENDP  ; |?SetDeviceKey@CDisk@@QAAXPAG@Z|, CDisk::SetDeviceKey


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

  00000			 AREA	 |.pdata$$?ConfigureRegisterBlock@CDisk@@UAAXK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?ConfigureRegisterBlock@CDisk@@UAAXK@Z| } ; comdat associative
|$T33313| DCD	|$L33312|
	DCD	0x40001501
; Function compile flags: /Ogsy

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

  00000		 |?ConfigureRegisterBlock@CDisk@@UAAXK@Z| PROC ; CDisk::ConfigureRegisterBlock

; 237  : {

  00000		 |$L33312|
  00000	e92d40f0	 stmdb       sp!, {r4 - r7, lr}
  00004		 |$M33310|

; 238  : 	
; 239  :     m_dwStride = dwStride;
; 240  :     m_dwDataDrvCtrlOffset = ATA_REG_DATA * dwStride;
; 241  :     m_dwFeatureErrorOffset = ATA_REG_FEATURE * dwStride;
; 242  :     m_dwSectCntReasonOffset = ATA_REG_SECT_CNT * dwStride;
; 243  :     m_dwSectNumOffset = ATA_REG_SECT_NUM * dwStride;
; 244  :     m_dwDrvHeadOffset = ATA_REG_DRV_HEAD * dwStride;

  00004	e0813081	 add         r3, r1, r1, lsl #1
  00008	e1a03083	 mov         r3, r3, lsl #1
  0000c	e3a07000	 mov         r7, #0
  00010	e1a02081	 mov         r2, r1, lsl #1
  00014	e081e081	 add         lr, r1, r1, lsl #1

; 245  :     m_dwCommandStatusOffset = ATA_REG_COMMAND * dwStride;

  00018	e0614181	 rsb         r4, r1, r1, lsl #3

; 246  :     m_dwByteCountLowOffset = ATA_REG_BYTECOUNTLOW * dwStride;

  0001c	e1a05101	 mov         r5, r1, lsl #2

; 247  :     m_dwByteCountHighOffset = ATA_REG_BYTECOUNTHIGH * dwStride;

  00020	e0816101	 add         r6, r1, r1, lsl #2
  00024	e280c020	 add         r12, r0, #0x20
  00028	e88c0018	 stmia       r12, {r3, r4}

; 248  :     m_dwAltStatusOffset = ATA_REG_ALT_STATUS_CS1 * dwStride;

  0002c	e5803028	 str         r3, [r0, #0x28]

; 249  :     m_dwAltDrvCtrl = ATA_REG_DRV_CTRL_CS1 * dwStride;

  00030	e580302c	 str         r3, [r0, #0x2C]
  00034	e280c004	 add         r12, r0, #4
  00038	e88c0082	 stmia       r12, {r1, r7}

⌨️ 快捷键说明

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