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

📄 atapipcicd.cod

📁 windows CE 的BSP开发包.包含众多的驱动程序和OAL层的开发代码
💻 COD
📖 第 1 页 / 共 2 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4091 

	TTL	D:\WINCE500\PLATFORM\smdk2440\DRIVERS\atapi\.\atapipcicd.cpp
	CODE32

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

	EXPORT	|?TakeCS@CPCIDisk@@UAAXXZ|		; CPCIDisk::TakeCS
	EXPORT	|?ReleaseCS@CPCIDisk@@UAAXXZ|		; CPCIDisk::ReleaseCS
	EXPORT	|??0CPCIDiskAndCD@@QAA@PAUHKEY__@@@Z|	; CPCIDiskAndCD::CPCIDiskAndCD
	EXPORT	|?MainIoctl@CPCIDiskAndCD@@UAAKPAU_IOREQ@@@Z| ; CPCIDiskAndCD::MainIoctl
	EXPORT	|??_7CPCIDiskAndCD@@6B@| [ DATA ]	; CPCIDiskAndCD::`vftable'
	EXPORT	|??_GCPCIDiskAndCD@@UAAPAXI@Z|		; CPCIDiskAndCD::`scalar deleting destructor'
	IMPORT	|??0CPCIDisk@@QAA@PAUHKEY__@@@Z|	; CPCIDisk::CPCIDisk
	IMPORT	|?ConfigureRegisterBlock@CPCIDisk@@UAAXK@Z| ; CPCIDisk::ConfigureRegisterBlock
	IMPORT	|?Init@CPCIDisk@@UAAHPAUHKEY__@@@Z|	; CPCIDisk::Init
	IMPORT	|?WaitForInterrupt@CPCIDisk@@UAAHK@Z|	; CPCIDisk::WaitForInterrupt
	IMPORT	|?EnableInterrupt@CPCIDisk@@UAAXXZ|	; CPCIDisk::EnableInterrupt
	IMPORT	|?ConfigPort@CPCIDisk@@UAAHXZ|		; CPCIDisk::ConfigPort
	IMPORT	|?SetupDMA@CPCIDisk@@UAAHPAU_SG_BUF@@KH@Z| ; CPCIDisk::SetupDMA
	IMPORT	|?BeginDMA@CPCIDisk@@UAAHH@Z|		; CPCIDisk::BeginDMA
	IMPORT	|?EndDMA@CPCIDisk@@UAAHXZ|		; CPCIDisk::EndDMA
	IMPORT	|?AbortDMA@CPCIDisk@@UAAHXZ|		; CPCIDisk::AbortDMA
	IMPORT	|?CompleteDMA@CPCIDisk@@UAAHPAU_SG_BUF@@KH@Z| ; CPCIDisk::CompleteDMA
	IMPORT	|?ReadCdRomDMA@CPCIDiskAndCD@@UAAKKKGKPAU_SGX_BUF@@@Z| ; CPCIDiskAndCD::ReadCdRomDMA
	IMPORT	|??_ECPCIDiskAndCD@@UAAPAXI@Z|, WEAK |??_GCPCIDiskAndCD@@UAAPAXI@Z| ; CPCIDiskAndCD::`vector deleting destructor', CPCIDiskAndCD::`scalar deleting destructor'
	IMPORT	|?InitController@CDisk@@UAAHH@Z|	; CDisk::InitController
	IMPORT	|?GetDeviceInfo@CDisk@@UAAKPAU_IOREQ@@@Z| ; CDisk::GetDeviceInfo
	IMPORT	|?WaitForDRQ@CDisk@@UAAHXZ|		; CDisk::WaitForDRQ
	IMPORT	|?WaitForDisc@CDisk@@UAAHEKK@Z|		; CDisk::WaitForDisc
	IMPORT	|?ReadWriteDiskDMA@CDisk@@UAAKPAU_IOREQ@@H@Z| ; CDisk::ReadWriteDiskDMA
	IMPORT	|?GetDiskPowerInterface@CDisk@@UAAPAVCDiskPower@@XZ| ; CDisk::GetDiskPowerInterface
	IMPORT	|?SetDiskPowerState@CDisk@@UAAHW4_CEDEVICE_POWER_STATE@@@Z| ; CDisk::SetDiskPowerState
	IMPORT	|?WakeUp@CDisk@@UAAHXZ|			; CDisk::WakeUp
; File d:\wince500\platform\smdk2440\drivers\atapi\atapipcicd.cpp

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

  00000			 AREA	 |.pdata$$??0CPCIDiskAndCD@@QAA@PAUHKEY__@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |??0CPCIDiskAndCD@@QAA@PAUHKEY__@@@Z| } ; comdat associative
|$T32160| DCD	|$L32159|
	DCD	0x40000901

  00000			 AREA	 |.rdata| { |??_7CPCIDiskAndCD@@6B@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_7CPCIDiskAndCD@@6B@| DCD |??_ECPCIDiskAndCD@@UAAPAXI@Z| ; CPCIDiskAndCD::`vftable'
	DCD	|?ConfigureRegisterBlock@CPCIDisk@@UAAXK@Z|
	DCD	|?Init@CPCIDisk@@UAAHPAUHKEY__@@@Z|
	DCD	|?InitController@CDisk@@UAAHH@Z|
	DCD	|?GetDeviceInfo@CDisk@@UAAKPAU_IOREQ@@@Z|
	DCD	|?MainIoctl@CPCIDiskAndCD@@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@CPCIDisk@@UAAXXZ|
	DCD	|?ReleaseCS@CPCIDisk@@UAAXXZ|
	DCD	|?WaitForInterrupt@CPCIDisk@@UAAHK@Z|
	DCD	|?EnableInterrupt@CPCIDisk@@UAAXXZ|
	DCD	|?SetupDMA@CPCIDisk@@UAAHPAU_SG_BUF@@KH@Z|
	DCD	|?BeginDMA@CPCIDisk@@UAAHH@Z|
	DCD	|?EndDMA@CPCIDisk@@UAAHXZ|
	DCD	|?AbortDMA@CPCIDisk@@UAAHXZ|
	DCD	|?CompleteDMA@CPCIDisk@@UAAHPAU_SG_BUF@@KH@Z|
	DCD	|?ConfigPort@CPCIDisk@@UAAHXZ|
	DCD	|?ReadCdRomDMA@CPCIDiskAndCD@@UAAKKKGKPAU_SGX_BUF@@@Z|
; Function compile flags: /Ogsy

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

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

; 55   : {

  00000		 |$L32159|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M32157|
  00004	e1a04000	 mov         r4, r0
  00008	eb000000	 bl          |??0CPCIDisk@@QAA@PAUHKEY__@@@Z|
  0000c	e59f300c	 ldr         r3, [pc, #0xC]

; 56   :     // empty
; 57   : }

  00010	e1a00004	 mov         r0, r4
  00014	e5843000	 str         r3, [r4]
  00018	e8bd4010	 ldmia       sp!, {r4, lr}
  0001c	e12fff1e	 bx          lr
  00020		 |$L32162|
  00020	00000000	 DCD         |??_7CPCIDiskAndCD@@6B@|
  00024		 |$M32158|

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

	IMPORT	|?TakeCS@CPort@@QAAXXZ|			; CPort::TakeCS
; File d:\wince500\platform\smdk2440\drivers\atapi\atapipci.h

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

  00000			 AREA	 |.pdata$$?TakeCS@CPCIDisk@@UAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?TakeCS@CPCIDisk@@UAAXXZ| } ; comdat associative
|$T32169| DCD	|$L32168|
	DCD	0x40000501
; Function compile flags: /Ogsy

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

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

; 69   :     inline virtual void CPCIDisk::TakeCS() {

  00000		 |$L32168|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M32166|

; 70   :         m_pPort->TakeCS();

  00004	e590003c	 ldr         r0, [r0, #0x3C]
  00008	eb000000	 bl          |?TakeCS@CPort@@QAAXXZ|

; 71   :     }

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$M32167|

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

	IMPORT	|?ReleaseCS@CPort@@QAAXXZ|		; CPort::ReleaseCS

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

  00000			 AREA	 |.pdata$$?ReleaseCS@CPCIDisk@@UAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?ReleaseCS@CPCIDisk@@UAAXXZ| } ; comdat associative
|$T32177| DCD	|$L32176|
	DCD	0x40000501
; Function compile flags: /Ogsy

  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		 |$L32176|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M32174|

; 73   :         m_pPort->ReleaseCS();

  00004	e590003c	 ldr         r0, [r0, #0x3C]
  00008	eb000000	 bl          |?ReleaseCS@CPort@@QAAXXZ|

; 74   :     }

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$M32175|

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

	EXPORT	|??1CPCIDiskAndCD@@UAA@XZ|		; CPCIDiskAndCD::~CPCIDiskAndCD
	IMPORT	|??1CPCIDisk@@UAA@XZ|			; CPCIDisk::~CPCIDisk

  00000			 AREA	 |.text| { |??1CPCIDiskAndCD@@UAA@XZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$??1CPCIDiskAndCD@@UAA@XZ|, PDATA, SELECTION=5, ASSOC=|.text| { |??1CPCIDiskAndCD@@UAA@XZ| } ; comdat associative
|$T32185| DCD	|$L32184|
	DCD	0x40000401
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |??1CPCIDiskAndCD@@UAA@XZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |??1CPCIDiskAndCD@@UAA@XZ| PROC	; CPCIDiskAndCD::~CPCIDiskAndCD
  00000		 |$L32184|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M32182|
  00004	eb000000	 bl          |??1CPCIDisk@@UAA@XZ|
  00008	e49de004	 ldr         lr, [sp], #4
  0000c	e12fff1e	 bx          lr
  00010		 |$M32183|

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

	IMPORT	|?MainIoctl@CPCIDisk@@UAAKPAU_IOREQ@@@Z| ; CPCIDisk::MainIoctl
	IMPORT	|?AtapiIoctl@CPCIDiskAndCD@@QAAKPAU_IOREQ@@@Z| ; CPCIDiskAndCD::AtapiIoctl
	IMPORT	|?IsAtapiDevice@CDisk@@QAAHXZ|		; CDisk::IsAtapiDevice
; File d:\wince500\platform\smdk2440\drivers\atapi\atapipcicd.cpp

  00000			 AREA	 |.text| { |?MainIoctl@CPCIDiskAndCD@@UAAKPAU_IOREQ@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?MainIoctl@CPCIDiskAndCD@@UAAKPAU_IOREQ@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?MainIoctl@CPCIDiskAndCD@@UAAKPAU_IOREQ@@@Z| } ; comdat associative
|$T32202| DCD	|$L32201|
	DCD	0x40007601
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?MainIoctl@CPCIDiskAndCD@@UAAKPAU_IOREQ@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?MainIoctl@CPCIDiskAndCD@@UAAKPAU_IOREQ@@@Z| PROC ; CPCIDiskAndCD::MainIoctl

; 71   : {

  00000		 |$L32201|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M32199|
  00004	e1a04001	 mov         r4, r1
  00008	e1a05000	 mov         r5, r0

; 72   :     DWORD dwError;
; 73   : 
; 74   :     DEBUGMSG(ZONE_IOCTL, (_T(
; 75   :         "Atapi!CPCIDiskAndCD::MainIoctl> IOCTL(0x%x), device(%d)\r\n"
; 76   :         ),pIOReq->dwCode, m_dwDeviceId));
; 77   : 
; 78   :     dwError = CPCIDisk::MainIoctl(pIOReq);

  0000c	eb000000	 bl          |?MainIoctl@CPCIDisk@@UAAKPAU_IOREQ@@@Z|

; 79   : 
; 80   :     if (dwError == ERROR_NOT_SUPPORTED) {

  00010	e3500032	 cmp         r0, #0x32
  00014	1a00006d	 bne         |$L32115|

; 81   : 
; 82   :         switch(pIOReq->dwCode) {

  00018	e5942014	 ldr         r2, [r4, #0x14]
  0001c	e3a03909	 mov         r3, #9, 18
  00020	e3833038	 orr         r3, r3, #0x38
  00024	e1520003	 cmp         r2, r3
  00028	8a00002d	 bhi         |$L32189|
  0002c	0a00005c	 beq         |$L32113|
  00030	e3a03909	 mov         r3, #9, 18
  00034	e3833010	 orr         r3, r3, #0x10
  00038	e1520003	 cmp         r2, r3
  0003c	8a000015	 bhi         |$L32190|
  00040	0a000057	 beq         |$L32113|
  00044	e3a03802	 mov         r3, #2, 16
  00048	e3833040	 orr         r3, r3, #0x40
  0004c	e1520003	 cmp         r2, r3
  00050	0a000053	 beq         |$L32113|
  00054	e3a03802	 mov         r3, #2, 16
  00058	e3833080	 orr         r3, r3, #0x80
  0005c	e1520003	 cmp         r2, r3
  00060	0a00004f	 beq         |$L32113|
  00064	e3520909	 cmp         r2, #9, 18
  00068	0a00004d	 beq         |$L32113|
  0006c	e3a03909	 mov         r3, #9, 18
  00070	e3833004	 orr         r3, r3, #4
  00074	e1520003	 cmp         r2, r3

⌨️ 快捷键说明

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