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

📄 atamain.cod

📁 windows CE 的BSP开发包.包含众多的驱动程序和OAL层的开发代码
💻 COD
📖 第 1 页 / 共 5 页
字号:
  00014	e593306c	 ldr         r3, [r3, #0x6C]
  00018		 |$L33108|
  00018	e3530000	 cmp         r3, #0
  0001c	1afffffa	 bne         |$L32423|

; 250  :     }
; 251  :     return FALSE;

  00020	e3a00000	 mov         r0, #0

; 252  : }

  00024	e12fff1e	 bx          lr
  00028		 |$L33102|

; 247  :             return TRUE;

  00028	e3a00001	 mov         r0, #1

; 252  : }

  0002c	e12fff1e	 bx          lr
  00030		 |$L33114|
  00030	00000000	 DCD         |?g_pDiskRoot@@3PAVCDisk@@A|
  00034		 |$M33110|

			 ENDP  ; |?AtaIsValidDisk@@YAHPAVCDisk@@@Z|, AtaIsValidDisk

	EXPORT	|?AtaGetRegistryResources@@YAHPAUHKEY__@@PAU_DDKWINDOWINFO_tag@@@Z| ; AtaGetRegistryResources
	IMPORT	|DDKReg_GetWindowInfo|

  00000			 AREA	 |.text| { |?AtaGetRegistryResources@@YAHPAUHKEY__@@PAU_DDKWINDOWINFO_tag@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?AtaGetRegistryResources@@YAHPAUHKEY__@@PAU_DDKWINDOWINFO_tag@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?AtaGetRegistryResources@@YAHPAUHKEY__@@PAU_DDKWINDOWINFO_tag@@@Z| } ; comdat associative
|$T33125| DCD	|$L33124|
	DCD	0x40001301
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?AtaGetRegistryResources@@YAHPAUHKEY__@@PAU_DDKWINDOWINFO_tag@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?AtaGetRegistryResources@@YAHPAUHKEY__@@PAU_DDKWINDOWINFO_tag@@@Z| PROC ; AtaGetRegistryResources

; 262  : {

  00000		 |$L33124|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M33122|
  00004	e1b04001	 movs        r4, r1

; 263  :     DEBUGCHK(pdwi != NULL);
; 264  : 
; 265  :     if (!pdwi) {
; 266  :         return FALSE;

  00008	0a000005	 beq         |$L33121|

; 267  :     }
; 268  : 
; 269  :     // fetch I/O window information
; 270  :     pdwi->cbSize = sizeof(*pdwi);

  0000c	e3a03074	 mov         r3, #0x74

; 271  :     if (ERROR_SUCCESS != ::DDKReg_GetWindowInfo(hDevKey, pdwi)) {

  00010	e1a01004	 mov         r1, r4
  00014	e5843000	 str         r3, [r4]
  00018	eb000000	 bl          DDKReg_GetWindowInfo
  0001c	e3500000	 cmp         r0, #0
  00020	0a000002	 beq         |$L32432|
  00024		 |$L33121|

; 272  :         return FALSE;

  00024	e3a00000	 mov         r0, #0

; 283  : }

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

; 273  :     }
; 274  :     // if interface not specified, then assume PCI
; 275  :     if (pdwi->dwInterfaceType == InterfaceTypeUndefined) {

  00030	e5943008	 ldr         r3, [r4, #8]

; 276  :         DEBUGMSG(ZONE_WARNING, (_T(
; 277  :             "Atapi!AtaGetRegistryResources> bus type not specified, using PCI as default\r\n"
; 278  :             )));
; 279  :         pdwi->dwInterfaceType = PCIBus;
; 280  :     }
; 281  : 
; 282  :     return TRUE;

  00034	e3a00001	 mov         r0, #1
  00038	e3730001	 cmn         r3, #1
  0003c	03a03005	 moveq       r3, #5
  00040	05843008	 streq       r3, [r4, #8]

; 283  : }

  00044	e8bd4010	 ldmia       sp!, {r4, lr}
  00048	e12fff1e	 bx          lr
  0004c		 |$M33123|

			 ENDP  ; |?AtaGetRegistryResources@@YAHPAUHKEY__@@PAU_DDKWINDOWINFO_tag@@@Z|, AtaGetRegistryResources

	EXPORT	|?DoIoTranslation@@YAKPAU_DDKWINDOWINFO_tag@@K@Z| ; DoIoTranslation
	IMPORT	|TransBusAddrToVirtual|

  00000			 AREA	 |.text| { |?DoIoTranslation@@YAKPAU_DDKWINDOWINFO_tag@@K@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?DoIoTranslation@@YAKPAU_DDKWINDOWINFO_tag@@K@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DoIoTranslation@@YAKPAU_DDKWINDOWINFO_tag@@K@Z| } ; comdat associative
|$T33139| DCD	|$L33138|
	DCD	0x40001a02
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?DoIoTranslation@@YAKPAU_DDKWINDOWINFO_tag@@K@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?DoIoTranslation@@YAKPAU_DDKWINDOWINFO_tag@@K@Z| PROC ; DoIoTranslation

; 291  : {

  00000		 |$L33138|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004	e24dd014	 sub         sp, sp, #0x14
  00008		 |$M33136|
  00008	e3500000	 cmp         r0, #0

; 292  :     PHYSICAL_ADDRESS PhysicalAddress; // bus address
; 293  :     DWORD AddressSpace = 1;           // mark bus address as being in an I/O window

  0000c	e3a03001	 mov         r3, #1
  00010	e58d300c	 str         r3, [sp, #0xC]

; 294  :     LPVOID pAddress;                  // return
; 295  : 
; 296  :     DEBUGCHK(pdwi != NULL);
; 297  :     DEBUGCHK(dwIoWindowIndex < MAX_DEVICE_WINDOWS);
; 298  :     if (!pdwi) {
; 299  :         return NULL;

  00014	0a00000d	 beq         |$L33135|

; 300  :     }
; 301  : 
; 302  :     // extract the target bus address
; 303  :     PhysicalAddress.HighPart = 0;
; 304  :     PhysicalAddress.LowPart = pdwi->ioWindows[dwIoWindowIndex].dwBase;

  00018	e0803181	 add         r3, r0, r1, lsl #3

; 305  : 
; 306  :     // translate the target bus address to a virtual address
; 307  :     if (!TransBusAddrToVirtual(
; 308  :         (INTERFACE_TYPE)pdwi->dwInterfaceType,
; 309  :         pdwi->dwBusNumber,
; 310  :         PhysicalAddress,
; 311  :         pdwi->ioWindows[dwIoWindowIndex].dwLen,
; 312  :         &AddressSpace,
; 313  :         &pAddress
; 314  :      )) {

  0001c	e5935014	 ldr         r5, [r3, #0x14]
  00020	e5901004	 ldr         r1, [r0, #4]
  00024	e5932010	 ldr         r2, [r3, #0x10]
  00028	e5900008	 ldr         r0, [r0, #8]
  0002c	e28de010	 add         lr, sp, #0x10
  00030	e28d400c	 add         r4, sp, #0xC
  00034	e3a03000	 mov         r3, #0
  00038	e58d5000	 str         r5, [sp]
  0003c	e58de008	 str         lr, [sp, #8]
  00040	e58d4004	 str         r4, [sp, #4]
  00044	eb000000	 bl          TransBusAddrToVirtual
  00048	e3500000	 cmp         r0, #0
  0004c	1a000001	 bne         |$L32446|
  00050		 |$L33135|

; 315  :         return NULL;

  00050	e3a00000	 mov         r0, #0
  00054	ea000000	 b           |$L32438|
  00058		 |$L32446|

; 316  :     }
; 317  : 
; 318  :     return (DWORD)pAddress;

  00058	e59d0010	 ldr         r0, [sp, #0x10]
  0005c		 |$L32438|

; 319  : }

  0005c	e28dd014	 add         sp, sp, #0x14
  00060	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  00064	e12fff1e	 bx          lr
  00068		 |$M33137|

			 ENDP  ; |?DoIoTranslation@@YAKPAU_DDKWINDOWINFO_tag@@K@Z|, DoIoTranslation

	EXPORT	|?DoStaticTranslation@@YAKPAU_DDKWINDOWINFO_tag@@K@Z| ; DoStaticTranslation
	IMPORT	|TransBusAddrToStatic|

  00000			 AREA	 |.text| { |?DoStaticTranslation@@YAKPAU_DDKWINDOWINFO_tag@@K@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?DoStaticTranslation@@YAKPAU_DDKWINDOWINFO_tag@@K@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DoStaticTranslation@@YAKPAU_DDKWINDOWINFO_tag@@K@Z| } ; comdat associative
|$T33153| DCD	|$L33152|
	DCD	0x40001a02
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?DoStaticTranslation@@YAKPAU_DDKWINDOWINFO_tag@@K@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?DoStaticTranslation@@YAKPAU_DDKWINDOWINFO_tag@@K@Z| PROC ; DoStaticTranslation

; 327  : {

  00000		 |$L33152|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004	e24dd014	 sub         sp, sp, #0x14
  00008		 |$M33150|
  00008	e3500000	 cmp         r0, #0

; 328  :     PHYSICAL_ADDRESS PhysicalAddress; // bus address
; 329  :     DWORD AddressSpace = 1;           // mark bus address as being in an I/O window

  0000c	e3a03001	 mov         r3, #1
  00010	e58d300c	 str         r3, [sp, #0xC]

; 330  :     LPVOID pAddress;                  // return
; 331  : 
; 332  :     DEBUGCHK(pdwi != NULL);
; 333  :     DEBUGCHK(dwIoWindowIndex < MAX_DEVICE_WINDOWS);
; 334  : 
; 335  :     if (!pdwi) {
; 336  :         return NULL;

  00014	0a00000d	 beq         |$L33149|

; 337  :     }
; 338  : 
; 339  :     // extract bus address
; 340  :     PhysicalAddress.HighPart = 0;
; 341  :     PhysicalAddress.LowPart = pdwi->ioWindows[dwIoWindowIndex].dwBase;

  00018	e0803181	 add         r3, r0, r1, lsl #3

; 342  : 
; 343  :     // translate the target bus address to a statically mapped physical address
; 344  :     if (!TransBusAddrToStatic(
; 345  :         (INTERFACE_TYPE)pdwi->dwInterfaceType,
; 346  :         pdwi->dwBusNumber,
; 347  :         PhysicalAddress,
; 348  :         pdwi->ioWindows[dwIoWindowIndex].dwLen,
; 349  :         &AddressSpace,
; 350  :         &pAddress
; 351  :     )) {

  0001c	e5935014	 ldr         r5, [r3, #0x14]
  00020	e5901004	 ldr         r1, [r0, #4]
  00024	e5932010	 ldr         r2, [r3, #0x10]
  00028	e5900008	 ldr         r0, [r0, #8]
  0002c	e28de010	 add         lr, sp, #0x10
  00030	e28d400c	 add         r4, sp, #0xC
  00034	e3a03000	 mov         r3, #0
  00038	e58d5000	 str         r5, [sp]
  0003c	e58de008	 str         lr, [sp, #8]
  00040	e58d4004	 str         r4, [sp, #4]
  00044	eb000000	 bl          TransBusAddrToStatic
  00048	e3500000	 cmp         r0, #0
  0004c	1a000001	 bne         |$L32459|
  00050		 |$L33149|

; 352  :         return NULL;

  00050	e3a00000	 mov         r0, #0
  00054	ea000000	 b           |$L32451|
  00058		 |$L32459|

; 353  :     }
; 354  : 
; 355  :     return (DWORD)pAddress;

  00058	e59d0010	 ldr         r0, [sp, #0x10]
  0005c		 |$L32451|

; 356  : }

  0005c	e28dd014	 add         sp, sp, #0x14
  00060	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  00064	e12fff1e	 bx          lr
  00068		 |$M33151|

			 ENDP  ; |?DoStaticTranslation@@YAKPAU_DDKWINDOWINFO_tag@@K@Z|, DoStaticTranslation

	EXPORT	|?GetIDERegistryValueSet@@YAHPAUHKEY__@@PAU_IDEREG@@@Z| ; GetIDERegistryValueSet
	EXPORT	|??_C@_1O@ECNENGDC@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_17DJGGJCGD@?$AAI?$AAr?$AAq?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1BA@BDHDGOBO@?$AAS?$AAy?$AAs?$AAI?$AAn?$AAt?$AAr?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1BC@NPAECANO@?$AAV?$AAe?$AAn?$AAd?$AAo?$AAr?$AAI?$AAD?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1BK@HCJMIBBG@?$AAD?$AAM?$AAA?$AAA?$AAl?$AAi?$AAg?$AAn?$AAm?$AAe?$AAn?$AAt?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1CC@BEHBKIBC@?$AAS?$AAo?$AAf?$AAt?$AAR?$AAe?$AAs?$AAe?$AAt?$AAT?$AAi?$AAm?$AAe?$AAo?$AAu?$AAt?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1CC@FOJHDLJB@?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAP?$AAo?$AAl?$AAl?$AAC?$AAy?$AAc?$AAl?$AAe?$AAs?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1CI@CKDNEMLE@?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAP?$AAo?$AAl?$AAl?$AAs?$AAP?$AAe?$AAr?$AAC?$AAy?$AAc?$AAl?$AAe?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1CK@PKHKJDHK@?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAP?$AAo?$AAl?$AAl?$AAC?$AAy?$AAc?$AAl?$AAe?$AAP?$AAa?$AAu?$AAs?$AAe@| [ DATA ] ; `string'
	EXPORT	|??_C@_1BM@BABJOPKK@?$AAS?$AAp?$AAa?$AAw?$AAn?$AAF?$AAu?$AAn?$AAc?$AAt?$AAi?$AAo?$AAn?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1O@MDNCMDKF@?$AAI?$AAs?$AAr?$AAD?$AAl?$AAl?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1BG@NELPJJNN@?$AAI?$AAs?$AAr?$AAH?$AAa?$AAn?$AAd?$AAl?$AAe?$AAr?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1CI@HEEIGOOF@?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAO?$AAf?$AAf?$AAs?$AAe?$AAt?$AA?$AA@| [ DATA ] ; `string'
	EXPORT	|??_C@_1CM@GOEPMFGL@?$AAA?$AAl?$AAt?$AAe?$AAr?$AAn?$AAa?$AAt?$AAe?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAO?$AAf?$AAf?$AAs?$AAe@| [ DATA ] ; `string'
	EXPORT	|??_C@_1BO@HNHOPIFG@?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAe?$AAr?$AAS?$AAt?$AAr?$AAi?$AAd?$AAe?$AA?$AA@| [ DATA ] ; `string'
	IMPORT	|?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z| ; AtaGetRegistryValue
	IMPORT	|?AtaGetRegistryString@@YAHPAUHKEY__@@PAGPAPAGK@Z| ; AtaGetRegistryString

  00000			 AREA	 |.text| { |?GetIDERegistryValueSet@@YAHPAUHKEY__@@PAU_IDEREG@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?GetIDERegistryValueSet@@YAHPAUHKEY__@@PAU_IDEREG@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetIDERegistryValueSet@@YAHPAUHKEY__@@PAU_IDEREG@@@Z| } ; comdat associative
|$T33165| DCD	|$L33164|
	DCD	0x40007d01

  00000			 AREA	 |.rdata| { |??_C@_1BO@HNHOPIFG@?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAe?$AAr?$AAS?$AAt?$AAr?$AAi?$AAd?$AAe?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BO@HNHOPIFG@?$AAR?$AAe?$AAg?$AAi?$AAs?$AAt?$AAe?$AAr?$AAS?$AAt?$AAr?$AAi?$AAd?$AAe?$AA?$AA@| DCB "R"
	DCB	0x0, "e", 0x0, "g", 0x0, "i", 0x0, "s", 0x0, "t", 0x0, "e"
	DCB	0x0, "r", 0x0, "S", 0x0, "t", 0x0, "r", 0x0, "i", 0x0, "d"
	DCB	0x0, "e", 0x0, 0x0, 0x0			; `string'

⌨️ 快捷键说明

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