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

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

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

	EXPORT	|?AtapiIoctl@CPCIDiskAndCD@@QAAKPAU_IOREQ@@@Z| ; CPCIDiskAndCD::AtapiIoctl
	EXPORT	|?ReadCdRom@CPCIDiskAndCD@@QAAKPAUCDROM_READ@@PAK@Z| ; CPCIDiskAndCD::ReadCdRom
	EXPORT	|?AtapiIsUnitReady@CPCIDiskAndCD@@QAAHPAU_IOREQ@@@Z| ; CPCIDiskAndCD::AtapiIsUnitReady
	EXPORT	|?AtapiIsUnitReadyEx@CPCIDiskAndCD@@QAAHXZ| ; CPCIDiskAndCD::AtapiIsUnitReadyEx
	EXPORT	|?AtapiGetSenseInfo@CPCIDiskAndCD@@QAAHPAU_CD_SENSE_DATA@@@Z| ; CPCIDiskAndCD::AtapiGetSenseInfo
	EXPORT	|?AtapiIssueInquiry@CPCIDiskAndCD@@QAAHPAU_INQUIRY_DATA@@@Z| ; CPCIDiskAndCD::AtapiIssueInquiry
	EXPORT	|?AtapiGetToc@CPCIDiskAndCD@@QAAHPAU_CDROM_TOC@@@Z| ; CPCIDiskAndCD::AtapiGetToc
	EXPORT	|?AtapiGetDiscInfo@CPCIDiskAndCD@@QAAKPAU_IOREQ@@@Z| ; CPCIDiskAndCD::AtapiGetDiscInfo
	EXPORT	|?AtapiReadQChannel@CPCIDiskAndCD@@QAAKPAU_IOREQ@@@Z| ; CPCIDiskAndCD::AtapiReadQChannel
	EXPORT	|?AtapiLoadMedia@CPCIDiskAndCD@@QAAKH@Z| ; CPCIDiskAndCD::AtapiLoadMedia
	EXPORT	|??_C@_1EO@MDEOOFHJ@?$AAA?$AAT?$AAA?$AAP?$AAI?$AA?3?$AAP?$AAe?$AAr?$AAf?$AAo?$AAr?$AAm?$AAI?$AAo?$AAc?$AAt?$AAl?$AA?3?$AA?5@| [ DATA ] ; `string'
	IMPORT	|NKDbgPrintfW|
	IMPORT	|dpCurSettings|
	IMPORT	|?ControlAudio@CPCIDiskAndCD@@QAAKPAU_IOREQ@@@Z| ; CPCIDiskAndCD::ControlAudio
	IMPORT	|?DVDReadKey@CPCIDiskAndCD@@QAAKPAU_IOREQ@@@Z| ; CPCIDiskAndCD::DVDReadKey
	IMPORT	|?DVDGetRegion@CPCIDiskAndCD@@QAAKPAU_IOREQ@@@Z| ; CPCIDiskAndCD::DVDGetRegion
	IMPORT	|?DVDSendKey@CPCIDiskAndCD@@QAAKPAU_IOREQ@@@Z| ; CPCIDiskAndCD::DVDSendKey
	IMPORT	|?DVDSetRegion@CPCIDiskAndCD@@QAAKPAU_IOREQ@@@Z| ; CPCIDiskAndCD::DVDSetRegion
	IMPORT	|?ValidateSg@CDisk@@SAHPAUCDROM_READ@@K@Z| ; CDisk::ValidateSg

  00000			 AREA	 |.pdata|, PDATA
|$T32739| DCD	|$L32738|
	DCD	0x40021f04
; File d:\wince500\platform\smdk2440\drivers\atapi\cdio.cpp

  00000			 AREA	 |.rdata| { |??_C@_1EO@MDEOOFHJ@?$AAA?$AAT?$AAA?$AAP?$AAI?$AA?3?$AAP?$AAe?$AAr?$AAf?$AAo?$AAr?$AAm?$AAI?$AAo?$AAc?$AAt?$AAl?$AA?3?$AA?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EO@MDEOOFHJ@?$AAA?$AAT?$AAA?$AAP?$AAI?$AA?3?$AAP?$AAe?$AAr?$AAf?$AAo?$AAr?$AAm?$AAI?$AAo?$AAc?$AAt?$AAl?$AA?3?$AA?5@| DCB "A"
	DCB	0x0, "T", 0x0, "A", 0x0, "P", 0x0, "I", 0x0, ":", 0x0, "P"
	DCB	0x0, "e", 0x0, "r", 0x0, "f", 0x0, "o", 0x0, "r", 0x0, "m"
	DCB	0x0, "I", 0x0, "o", 0x0, "c", 0x0, "t", 0x0, "l", 0x0, ":"
	DCB	0x0, " ", 0x0, "%", 0x0, "x", 0x0, " ", 0x0, "D", 0x0, "e"
	DCB	0x0, "v", 0x0, "i", 0x0, "c", 0x0, "e", 0x0, "I", 0x0, "d"
	DCB	0x0, ":", 0x0, " ", 0x0, "%", 0x0, "x", 0x0, " ", 0x0, 0xd
	DCB	0x0, 0xa, 0x0, 0x0, 0x0			; `string'
; Function compile flags: /Odt

  00000			 AREA	 |.text|, CODE, ARM

  00000		 |?AtapiIoctl@CPCIDiskAndCD@@QAAKPAU_IOREQ@@@Z| PROC ; CPCIDiskAndCD::AtapiIoctl

; 17   : {

  00000		 |$L32738|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0003	 stmdb       sp!, {r0, r1}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd0b4	 sub         sp, sp, #0xB4
  00010		 |$M32736|

; 18   :     DWORD dwError = ERROR_SUCCESS;

  00010	e3a03000	 mov         r3, #0
  00014	e58d3004	 str         r3, [sp, #4]

; 19   :     BOOL fIsDVD = FALSE;

  00018	e3a03000	 mov         r3, #0
  0001c	e58d3000	 str         r3, [sp]

; 20   :     DEBUGMSG( ZONE_IOCTL, (TEXT("ATAPI:PerformIoctl: %x DeviceId: %x \r\n"),pIOReq->dwCode, m_dwDeviceId));

  00020	e59f3850	 ldr         r3, [pc, #0x850]
  00024	e5933440	 ldr         r3, [r3, #0x440]
  00028	e3130040	 tst         r3, #0x40
  0002c	0a00000b	 beq         |$L32719|
  00030	e59d30bc	 ldr         r3, [sp, #0xBC]
  00034	e2833b01	 add         r3, r3, #1, 22
  00038	e2833088	 add         r3, r3, #0x88
  0003c	e5932000	 ldr         r2, [r3]
  00040	e59d30c0	 ldr         r3, [sp, #0xC0]
  00044	e2833014	 add         r3, r3, #0x14
  00048	e5931000	 ldr         r1, [r3]
  0004c	e59f0820	 ldr         r0, [pc, #0x820]
  00050	eb000000	 bl          NKDbgPrintfW
  00054	e3a03001	 mov         r3, #1
  00058	e58d3040	 str         r3, [sp, #0x40]
  0005c	ea000001	 b           |$L32720|
  00060		 |$L32719|
  00060	e3a03000	 mov         r3, #0
  00064	e58d3040	 str         r3, [sp, #0x40]
  00068		 |$L32720|

; 21   : 
; 22   :     switch( pIOReq->dwCode) {

  00068	e59d30c0	 ldr         r3, [sp, #0xC0]
  0006c	e2833014	 add         r3, r3, #0x14
  00070	e5933000	 ldr         r3, [r3]
  00074	e58d3044	 str         r3, [sp, #0x44]
  00078	e59d2044	 ldr         r2, [sp, #0x44]
  0007c	e3a03b93	 mov         r3, #0x93, 22
  00080	e3833004	 orr         r3, r3, #4
  00084	e1520003	 cmp         r2, r3
  00088	8a00004c	 bhi         |$L32727|
  0008c	e59d2044	 ldr         r2, [sp, #0x44]
  00090	e3a03b93	 mov         r3, #0x93, 22
  00094	e3833004	 orr         r3, r3, #4
  00098	e1520003	 cmp         r2, r3
  0009c	0a000089	 beq         |$L32106|
  000a0	e59d2044	 ldr         r2, [sp, #0x44]
  000a4	e3a03909	 mov         r3, #9, 18
  000a8	e3833010	 orr         r3, r3, #0x10
  000ac	e1520003	 cmp         r2, r3
  000b0	8a000022	 bhi         |$L32728|
  000b4	e59d2044	 ldr         r2, [sp, #0x44]
  000b8	e3a03909	 mov         r3, #9, 18
  000bc	e3833010	 orr         r3, r3, #0x10
  000c0	e1520003	 cmp         r2, r3
  000c4	0a0001d2	 beq         |$L32162|
  000c8	e59d2044	 ldr         r2, [sp, #0x44]
  000cc	e3a03909	 mov         r3, #9, 18
  000d0	e3833004	 orr         r3, r3, #4
  000d4	e1520003	 cmp         r2, r3
  000d8	8a00000d	 bhi         |$L32729|
  000dc	e59d2044	 ldr         r2, [sp, #0x44]
  000e0	e3a03909	 mov         r3, #9, 18
  000e4	e3833004	 orr         r3, r3, #4
  000e8	e1520003	 cmp         r2, r3
  000ec	0a0001c8	 beq         |$L32162|
  000f0	e59d2044	 ldr         r2, [sp, #0x44]
  000f4	e3a03802	 mov         r3, #2, 16
  000f8	e3833080	 orr         r3, r3, #0x80
  000fc	e1520003	 cmp         r2, r3
  00100	0a0001c3	 beq         |$L32162|
  00104	e59d3044	 ldr         r3, [sp, #0x44]
  00108	e3530909	 cmp         r3, #9, 18
  0010c	0a000145	 beq         |$L32142|
  00110	ea0001cf	 b           |$L32164|
  00114		 |$L32729|
  00114	e59d2044	 ldr         r2, [sp, #0x44]
  00118	e3a03909	 mov         r3, #9, 18
  0011c	e3833008	 orr         r3, r3, #8
  00120	e1520003	 cmp         r2, r3
  00124	0a0001ba	 beq         |$L32162|
  00128	e59d2044	 ldr         r2, [sp, #0x44]
  0012c	e3a03909	 mov         r3, #9, 18
  00130	e383300c	 orr         r3, r3, #0xC
  00134	e1520003	 cmp         r2, r3
  00138	0a0001b5	 beq         |$L32162|
  0013c	ea0001c4	 b           |$L32164|
  00140		 |$L32728|
  00140	e59d2044	 ldr         r2, [sp, #0x44]
  00144	e3a03909	 mov         r3, #9, 18
  00148	e383303e	 orr         r3, r3, #0x3E
  0014c	e1520003	 cmp         r2, r3
  00150	8a00000f	 bhi         |$L32730|
  00154	e59d2044	 ldr         r2, [sp, #0x44]
  00158	e3a03909	 mov         r3, #9, 18
  0015c	e383303e	 orr         r3, r3, #0x3E
  00160	e1520003	 cmp         r2, r3
  00164	0a000084	 beq         |$L32113|
  00168	e59d2044	 ldr         r2, [sp, #0x44]
  0016c	e3a03909	 mov         r3, #9, 18
  00170	e3833018	 orr         r3, r3, #0x18
  00174	e1520003	 cmp         r2, r3
  00178	0a0001a5	 beq         |$L32162|
  0017c	e59d2044	 ldr         r2, [sp, #0x44]
  00180	e3a03909	 mov         r3, #9, 18
  00184	e383302c	 orr         r3, r3, #0x2C
  00188	e1520003	 cmp         r2, r3
  0018c	0a000190	 beq         |$L32160|
  00190	ea0001af	 b           |$L32164|
  00194		 |$L32730|
  00194	e59d2044	 ldr         r2, [sp, #0x44]
  00198	e3a03b92	 mov         r3, #0x92, 22
  0019c	e3833008	 orr         r3, r3, #8
  001a0	e1520003	 cmp         r2, r3
  001a4	0a0000d5	 beq         |$L32126|
  001a8	e59d2044	 ldr         r2, [sp, #0x44]
  001ac	e3a03b92	 mov         r3, #0x92, 22
  001b0	e383300c	 orr         r3, r3, #0xC
  001b4	e1520003	 cmp         r2, r3
  001b8	0a0000d7	 beq         |$L32127|
  001bc	ea0001a4	 b           |$L32164|
  001c0		 |$L32727|
  001c0	e59d2044	 ldr         r2, [sp, #0x44]
  001c4	e3a039cd	 mov         r3, #0xCD, 18
  001c8	e3833004	 orr         r3, r3, #4
  001cc	e1520003	 cmp         r2, r3
  001d0	8a000022	 bhi         |$L32731|
  001d4	e59d2044	 ldr         r2, [sp, #0x44]
  001d8	e3a039cd	 mov         r3, #0xCD, 18
  001dc	e3833004	 orr         r3, r3, #4
  001e0	e1520003	 cmp         r2, r3
  001e4	0a00014c	 beq         |$L32154|
  001e8	e59d2044	 ldr         r2, [sp, #0x44]
  001ec	e3a03b93	 mov         r3, #0x93, 22
  001f0	e3833018	 orr         r3, r3, #0x18
  001f4	e1520003	 cmp         r2, r3
  001f8	8a00000f	 bhi         |$L32732|
  001fc	e59d2044	 ldr         r2, [sp, #0x44]
  00200	e3a03b93	 mov         r3, #0x93, 22
  00204	e3833018	 orr         r3, r3, #0x18
  00208	e1520003	 cmp         r2, r3
  0020c	0a0000c9	 beq         |$L32128|
  00210	e59d2044	 ldr         r2, [sp, #0x44]
  00214	e3a03b93	 mov         r3, #0x93, 22
  00218	e3833008	 orr         r3, r3, #8
  0021c	e1520003	 cmp         r2, r3
  00220	0a00009c	 beq         |$L32122|
  00224	e59d2044	 ldr         r2, [sp, #0x44]
  00228	e3a03b93	 mov         r3, #0x93, 22
  0022c	e383300c	 orr         r3, r3, #0xC
  00230	e1520003	 cmp         r2, r3
  00234	0a0000a1	 beq         |$L32124|
  00238	ea000185	 b           |$L32164|
  0023c		 |$L32732|
  0023c	e59d2044	 ldr         r2, [sp, #0x44]
  00240	e3a03b93	 mov         r3, #0x93, 22
  00244	e383301c	 orr         r3, r3, #0x1C
  00248	e1520003	 cmp         r2, r3
  0024c	0a0000d7	 beq         |$L32135|
  00250	e59d3044	 ldr         r3, [sp, #0x44]
  00254	e35309cd	 cmp         r3, #0xCD, 18
  00258	0a00012f	 beq         |$L32154|
  0025c	ea00017c	 b           |$L32164|
  00260		 |$L32731|
  00260	e59d2044	 ldr         r2, [sp, #0x44]
  00264	e3a039cd	 mov         r3, #0xCD, 18
  00268	e3833008	 orr         r3, r3, #8
  0026c	e0423003	 sub         r3, r2, r3
  00270	e58d3044	 str         r3, [sp, #0x44]
  00274	e59d3044	 ldr         r3, [sp, #0x44]
  00278	e353000c	 cmp         r3, #0xC
  0027c	8a000174	 bhi         |$L32164|
  00280	e59d2044	 ldr         r2, [sp, #0x44]
  00284	e1a03102	 mov         r3, r2, lsl #2
  00288	e083300f	 add         r3, r3, pc
  0028c	e5933004	 ldr         r3, [r3, #4]
  00290	e08ff003	 add         pc, pc, r3
  00294		 |$L32735|
  00294		 |$L32734|
  00294	000004c4	 DCD         0x4c4
  00298	000005bc	 DCD         0x5bc
  0029c	000005bc	 DCD         0x5bc
  002a0	000005bc	 DCD         0x5bc
  002a4	000004c4	 DCD         0x4c4
  002a8	000005bc	 DCD         0x5bc
  002ac	000005bc	 DCD         0x5bc
  002b0	000005bc	 DCD         0x5bc
  002b4	00000504	 DCD         0x504
  002b8	000005bc	 DCD         0x5bc
  002bc	000005bc	 DCD         0x5bc
  002c0	000005bc	 DCD         0x5bc
  002c4	00000520	 DCD         0x520
  002c8		 |$L32106|

; 23   : ///////////////////// ATAPI  /////////////////////////////////////                
; 24   :         case IOCTL_CDROM_READ_SG:
; 25   :             // Verify that the buffer is of valid size
; 26   :             {
; 27   :                 if (!AtapiIsUnitReadyEx()) return ERROR_NOT_READY;

  002c8	e59d00bc	 ldr         r0, [sp, #0xBC]
  002cc	eb000000	 bl          |?AtapiIsUnitReadyEx@CPCIDiskAndCD@@QAAHXZ|
  002d0	e58d0048	 str         r0, [sp, #0x48]
  002d4	e59d3048	 ldr         r3, [sp, #0x48]
  002d8	e3530000	 cmp         r3, #0
  002dc	1a000002	 bne         |$L32107|
  002e0	e3a03015	 mov         r3, #0x15
  002e4	e58d303c	 str         r3, [sp, #0x3C]
  002e8	ea00015d	 b           |$L32097|
  002ec		 |$L32107|

; 28   :                 if ((pIOReq->pInBuf == NULL) ||
; 29   :                    (pIOReq->pBytesReturned == NULL) ||
; 30   :                    !ValidateSg((CDROM_READ *)pIOReq->pInBuf,pIOReq->dwInBufSize)) {

  002ec	e59d30c0	 ldr         r3, [sp, #0xC0]
  002f0	e2833018	 add         r3, r3, #0x18
  002f4	e5933000	 ldr         r3, [r3]
  002f8	e3530000	 cmp         r3, #0
  002fc	0a00000f	 beq         |$L32110|
  00300	e59d30c0	 ldr         r3, [sp, #0xC0]
  00304	e2833028	 add         r3, r3, #0x28
  00308	e5933000	 ldr         r3, [r3]
  0030c	e3530000	 cmp         r3, #0
  00310	0a00000a	 beq         |$L32110|
  00314	e59d30c0	 ldr         r3, [sp, #0xC0]
  00318	e283301c	 add         r3, r3, #0x1C
  0031c	e5931000	 ldr         r1, [r3]
  00320	e59d30c0	 ldr         r3, [sp, #0xC0]
  00324	e2833018	 add         r3, r3, #0x18
  00328	e5930000	 ldr         r0, [r3]
  0032c	eb000000	 bl          |?ValidateSg@CDisk@@SAHPAUCDROM_READ@@K@Z|
  00330	e58d004c	 str         r0, [sp, #0x4C]
  00334	e59d304c	 ldr         r3, [sp, #0x4C]
  00338	e3530000	 cmp         r3, #0
  0033c	1a000002	 bne         |$L32109|
  00340		 |$L32110|

; 31   :                     dwError = ERROR_INVALID_PARAMETER;

  00340	e3a03057	 mov         r3, #0x57
  00344	e58d3004	 str         r3, [sp, #4]

; 32   :                 } else {

  00348	ea00000a	 b           |$L32111|
  0034c		 |$L32109|

; 33   :                     dwError = ReadCdRom((CDROM_READ *)pIOReq->pInBuf, pIOReq->pBytesReturned);

  0034c	e59d30c0	 ldr         r3, [sp, #0xC0]
  00350	e2833028	 add         r3, r3, #0x28
  00354	e5932000	 ldr         r2, [r3]
  00358	e59d30c0	 ldr         r3, [sp, #0xC0]
  0035c	e2833018	 add         r3, r3, #0x18
  00360	e5931000	 ldr         r1, [r3]
  00364	e59d00bc	 ldr         r0, [sp, #0xBC]
  00368	eb000000	 bl          |?ReadCdRom@CPCIDiskAndCD@@QAAKPAUCDROM_READ@@PAK@Z|
  0036c	e58d0050	 str         r0, [sp, #0x50]
  00370	e59d3050	 ldr         r3, [sp, #0x50]
  00374	e58d3004	 str         r3, [sp, #4]
  00378		 |$L32111|

; 34   :                 }    
; 35   :             }    
; 36   :             break;

  00378	ea000137	 b           |$L32103|
  0037c		 |$L32113|

; 37   :         case IOCTL_CDROM_RAW_READ:
; 38   :             {
; 39   :                 if (!AtapiIsUnitReadyEx()) return ERROR_NOT_READY;

  0037c	e59d00bc	 ldr         r0, [sp, #0xBC]
  00380	eb000000	 bl          |?AtapiIsUnitReadyEx@CPCIDiskAndCD@@QAAHXZ|
  00384	e58d0054	 str         r0, [sp, #0x54]
  00388	e59d3054	 ldr         r3, [sp, #0x54]
  0038c	e3530000	 cmp         r3, #0
  00390	1a000002	 bne         |$L32114|
  00394	e3a03015	 mov         r3, #0x15

⌨️ 快捷键说明

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