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

📄 diskmain.cod

📁 PXA270的BSP
💻 COD
📖 第 1 页 / 共 5 页
字号:
  00294	13a0eb02	 movne       lr, #2, 22
  00298		 |$L32968|
  00298	e59036b4	 ldr         r3, [r0, #0x6B4]
  0029c	e580269c	 str         r2, [r0, #0x69C]
  002a0	e58046b0	 str         r4, [r0, #0x6B0]
  002a4	e183300e	 orr         r3, r3, lr
  002a8	e58036b4	 str         r3, [r0, #0x6B4]
  002ac	e58016a0	 str         r1, [r0, #0x6A0]
  002b0		 |$L32904|

; 720  : 
; 721  : 
; 722  :         DEBUGMSG( ZONE_INIT, (TEXT("ATAPI:AnalyzeDeviceCapabilities target %d transfer timing:\r\n"),m_dwDevice));
; 723  : 
; 724  : 		//* * * CAMSDB03/30/04 - Added a '0x' for mode display in all the DEBUGMSG's below.
; 725  : 
; 726  :         DEBUGMSG( ZONE_INIT, (TEXT("ATAPI:AnalyzeDeviceCapabilities PIO mode supported = 0x%04x and best cycle time = %5d ns\r\n"),
; 727  :                         m_dwTransferModeSupported & PIO_SUPPORT,
; 728  :                         m_dwBestPioCycleTime));
; 729  :         DEBUGMSG( ZONE_INIT, (TEXT("ATAPI:AnalyzeDeviceCapabilities SWDMA mode supported = 0x%04x and best cycle time = %5d ns\r\n"),
; 730  :                         m_dwTransferModeSupported & SWDMA_SUPPORT,
; 731  :                         m_dwBestSwDmaCycleTime));
; 732  :         DEBUGMSG( ZONE_INIT, (TEXT("ATAPI:AnalyzeDeviceCapabilities MWDMA mode supported = 0x%04x and best cycle time = %5d ns\r\n"),
; 733  :                         m_dwTransferModeSupported & MWDMA_SUPPORT,
; 734  :                         m_dwBestSwDmaCycleTime));
; 735  :         DEBUGMSG( ZONE_INIT, (TEXT("ATAPI:AnalyzeDeviceCapabilities UDMA mode supported = 0x%04x and best cycle time = %5d ns\r\n"),
; 736  :                         m_dwTransferModeSupported & UDMA_SUPPORT,
; 737  :                         m_dwBestUDmaCycleTime));
; 738  :         
; 739  : 		//* * * CAMSDB03/30/04 - Uncommented the line below (START)
; 740  : 		DEBUGMSG( ZONE_INIT, (TEXT("ATAPI:AnalyzeDeviceCapabilities Current mode bitmap  = %04x\r\n"),
; 741  :                         m_dwTransferModeCurrent));
; 742  : 		//* * * CAMSDB03/30/04 - Uncommented the line below (END)
; 743  : 
; 744  :     }
; 745  : } // AnalyzeDeviceCapabilities

  002b0	e8bd41f0	 ldmia       sp!, {r4 - r8, lr}
  002b4	e12fff1e	 bx          lr
  002b8		 |$M33648|

			 ENDP  ; |?AnalyzeDeviceCapabilities@CDisk@@QAAXXZ|, CDisk::AnalyzeDeviceCapabilities

	EXPORT	|?ValidateSg@CDisk@@CAHPAU_SG_REQ@@K@Z|	; CDisk::ValidateSg
	IMPORT	|MapCallerPtr|

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

  00000			 AREA	 |.pdata$$?ValidateSg@CDisk@@CAHPAU_SG_REQ@@K@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?ValidateSg@CDisk@@CAHPAU_SG_REQ@@K@Z| } ; comdat associative
|$T33666| DCD	|$L33665|
	DCD	0x40002701
; Function compile flags: /Ogsy

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

  00000		 |?ValidateSg@CDisk@@CAHPAU_SG_REQ@@K@Z| PROC ; CDisk::ValidateSg

; 748  : {

  00000		 |$L33665|
  00000	e92d4070	 stmdb       sp!, {r4 - r6, lr}
  00004		 |$M33663|
  00004	e1a04000	 mov         r4, r0

; 749  :     if (PSLGetCallerTrust()!= OEM_CERTIFY_TRUST) {

  00008	e3a02000	 mov         r2, #0
  0000c	e2422b0e	 sub         r2, r2, #0xE, 22
  00010	e5923000	 ldr         r3, [r2]
  00014	e5133014	 ldr         r3, [r3, #-0x14]
  00018	e3130002	 tst         r3, #2
  0001c	1a000018	 bne         |$L32993|
  00020	e5923000	 ldr         r3, [r2]
  00024	e5133018	 ldr         r3, [r3, #-0x18]
  00028	e3530002	 cmp         r3, #2
  0002c	0a000014	 beq         |$L32993|

; 750  :         if  (pSgReq && InBufLen >= (sizeof(SG_REQ) + sizeof(SG_BUF) * (pSgReq->sr_num_sg - 1))) {

  00030	e3540000	 cmp         r4, #0
  00034	0a000015	 beq         |$L32986|
  00038	e5942008	 ldr         r2, [r4, #8]
  0003c	e2423001	 sub         r3, r2, #1
  00040	e1a03183	 mov         r3, r3, lsl #3
  00044	e283301c	 add         r3, r3, #0x1C
  00048	e1510003	 cmp         r1, r3
  0004c	3a00000f	 bcc         |$L32986|

; 751  :             DWORD dwIndex;
; 752  :             for (dwIndex=0; dwIndex < pSgReq -> sr_num_sg; dwIndex++) {

  00050	e3a06000	 mov         r6, #0
  00054	e3520000	 cmp         r2, #0
  00058	0a000009	 beq         |$L32993|
  0005c	e1a05004	 mov         r5, r4
  00060		 |$L32988|

; 753  :                 pSgReq->sr_sglist[dwIndex].sb_buf = 
; 754  :                     (PUCHAR)MapCallerPtr((LPVOID)pSgReq->sr_sglist[dwIndex].sb_buf,pSgReq->sr_sglist[dwIndex].sb_len);

  00060	e5951018	 ldr         r1, [r5, #0x18]
  00064	e5950014	 ldr         r0, [r5, #0x14]
  00068	eb000000	 bl          MapCallerPtr
  0006c	e5850014	 str         r0, [r5, #0x14]
  00070	e5943008	 ldr         r3, [r4, #8]
  00074	e2866001	 add         r6, r6, #1
  00078	e2855008	 add         r5, r5, #8
  0007c	e1560003	 cmp         r6, r3
  00080	3afffff6	 bcc         |$L32988|
  00084		 |$L32993|

; 759  :     }
; 760  :     return TRUE;

  00084	e3a00001	 mov         r0, #1

; 761  : }

  00088	e8bd4070	 ldmia       sp!, {r4 - r6, lr}
  0008c	e12fff1e	 bx          lr
  00090		 |$L32986|

; 755  :             }
; 756  :         }
; 757  :         else // Parameter Wrong.
; 758  :             return FALSE;

  00090	e3a00000	 mov         r0, #0

; 761  : }

  00094	e8bd4070	 ldmia       sp!, {r4 - r6, lr}
  00098	e12fff1e	 bx          lr
  0009c		 |$M33664|

			 ENDP  ; |?ValidateSg@CDisk@@CAHPAU_SG_REQ@@K@Z|, CDisk::ValidateSg

	EXPORT	|?ValidateSg@CDisk@@CAHPAUCDROM_READ@@K@Z| ; CDisk::ValidateSg

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

  00000			 AREA	 |.pdata$$?ValidateSg@CDisk@@CAHPAUCDROM_READ@@K@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?ValidateSg@CDisk@@CAHPAUCDROM_READ@@K@Z| } ; comdat associative
|$T33682| DCD	|$L33681|
	DCD	0x40004301
; Function compile flags: /Ogsy

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

  00000		 |?ValidateSg@CDisk@@CAHPAUCDROM_READ@@K@Z| PROC ; CDisk::ValidateSg

; 763  : {

  00000		 |$L33681|
  00000	e92d41f0	 stmdb       sp!, {r4 - r8, lr}
  00004		 |$M33679|
  00004	e1a06000	 mov         r6, r0

; 764  :     if (PSLGetCallerTrust()!= OEM_CERTIFY_TRUST) {

  00008	e3a02000	 mov         r2, #0
  0000c	e2422b0e	 sub         r2, r2, #0xE, 22
  00010	e5923000	 ldr         r3, [r2]
  00014	e5133014	 ldr         r3, [r3, #-0x14]
  00018	e3130002	 tst         r3, #2
  0001c	1a000034	 bne         |$L33012|
  00020	e5923000	 ldr         r3, [r2]
  00024	e5133018	 ldr         r3, [r3, #-0x18]
  00028	e3530002	 cmp         r3, #2
  0002c	0a000030	 beq         |$L33012|

; 765  :         if  (pCdrom && InBufLen >= (sizeof(CDROM_READ) + sizeof(SGX_BUF) * (pCdrom->sgcount - 1))) {

  00030	e3560000	 cmp         r6, #0
  00034	0a000031	 beq         |$L33005|
  00038	e5d64014	 ldrb        r4, [r6, #0x14]
  0003c	e5d63015	 ldrb        r3, [r6, #0x15]
  00040	e5d62016	 ldrb        r2, [r6, #0x16]
  00044	e5d6e017	 ldrb        lr, [r6, #0x17]
  00048	e1843403	 orr         r3, r4, r3, lsl #8
  0004c	e1833802	 orr         r3, r3, r2, lsl #16
  00050	e1832c0e	 orr         r2, r3, lr, lsl #24
  00054	e2823003	 add         r3, r2, #3
  00058	e1510183	 cmp         r1, r3, lsl #3
  0005c	3a000027	 bcc         |$L33005|

; 766  :             DWORD dwIndex;
; 767  :             for (dwIndex=0; dwIndex < pCdrom-> sgcount; dwIndex++) {

  00060	e3a08000	 mov         r8, #0
  00064	e3520000	 cmp         r2, #0
  00068	0a000021	 beq         |$L33012|
  0006c	e1a07006	 mov         r7, r6
  00070		 |$L33007|

; 768  :                 pCdrom->sglist[dwIndex].sb_buf = 
; 769  :                     (PUCHAR)MapCallerPtr((LPVOID)pCdrom->sglist[dwIndex].sb_buf,pCdrom->sglist[dwIndex].sb_len);

  00070	e5d7001c	 ldrb        r0, [r7, #0x1C]
  00074	e5d7201d	 ldrb        r2, [r7, #0x1D]
  00078	e5d71018	 ldrb        r1, [r7, #0x18]
  0007c	e5d73019	 ldrb        r3, [r7, #0x19]
  00080	e5d7401e	 ldrb        r4, [r7, #0x1E]
  00084	e5d7501a	 ldrb        r5, [r7, #0x1A]
  00088	e1802402	 orr         r2, r0, r2, lsl #8
  0008c	e5d7001f	 ldrb        r0, [r7, #0x1F]
  00090	e5d7e01b	 ldrb        lr, [r7, #0x1B]
  00094	e1811403	 orr         r1, r1, r3, lsl #8
  00098	e1823804	 orr         r3, r2, r4, lsl #16
  0009c	e1812805	 orr         r2, r1, r5, lsl #16
  000a0	e1831c00	 orr         r1, r3, r0, lsl #24
  000a4	e1820c0e	 orr         r0, r2, lr, lsl #24
  000a8	eb000000	 bl          MapCallerPtr
  000ac	e1a03420	 mov         r3, r0, lsr #8
  000b0	e1a02820	 mov         r2, r0, lsr #16
  000b4	e1a01c20	 mov         r1, r0, lsr #24
  000b8	e5c73019	 strb        r3, [r7, #0x19]
  000bc	e5c7201a	 strb        r2, [r7, #0x1A]
  000c0	e5c7101b	 strb        r1, [r7, #0x1B]
  000c4	e5c70018	 strb        r0, [r7, #0x18]
  000c8	e5d60014	 ldrb        r0, [r6, #0x14]
  000cc	e5d63015	 ldrb        r3, [r6, #0x15]
  000d0	e5d62016	 ldrb        r2, [r6, #0x16]
  000d4	e5d61017	 ldrb        r1, [r6, #0x17]
  000d8	e1803403	 orr         r3, r0, r3, lsl #8
  000dc	e1833802	 orr         r3, r3, r2, lsl #16
  000e0	e1833c01	 orr         r3, r3, r1, lsl #24
  000e4	e2888001	 add         r8, r8, #1
  000e8	e1580003	 cmp         r8, r3
  000ec	e2877008	 add         r7, r7, #8
  000f0	3affffde	 bcc         |$L33007|
  000f4		 |$L33012|

; 774  :     }
; 775  :     return TRUE;

  000f4	e3a00001	 mov         r0, #1

; 776  : }

  000f8	e8bd41f0	 ldmia       sp!, {r4 - r8, lr}
  000fc	e12fff1e	 bx          lr
  00100		 |$L33005|

; 770  :             }
; 771  :         }
; 772  :         else // Parameter Wrong.
; 773  :             return FALSE;

  00100	e3a00000	 mov         r0, #0

; 776  : }

  00104	e8bd41f0	 ldmia       sp!, {r4 - r8, lr}
  00108	e12fff1e	 bx          lr
  0010c		 |$M33680|

			 ENDP  ; |?ValidateSg@CDisk@@CAHPAUCDROM_READ@@K@Z|, CDisk::ValidateSg

	EXPORT	|?PostInit@CDisk@@QAAHPAU_POST_INIT_BUF@@@Z| ; CDisk::PostInit

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

  00000			 AREA	 |.pdata$$?PostInit@CDisk@@QAAHPAU_POST_INIT_BUF@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?PostInit@CDisk@@QAAHPAU_POST_INIT_BUF@@@Z| } ; comdat associative
|$T33695| DCD	|$L33694|
	DCD	0x40000500
; Function compile flags: /Ogsy

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

  00000		 |?PostInit@CDisk@@QAAHPAU_POST_INIT_BUF@@@Z| PROC ; CDisk::PostInit

; 919  : {

  00000		 |$L33694|
  00000		 |$M33692|
  00000	e1a02000	 mov         r2, r0

; 920  :     DWORD dwError=ERROR_SUCCESS;
; 921  : 
; 922  :     DEBUGMSG( ZONEID_INIT, (TEXT("ATAPI: PostInit ( Device :0x%x) \r\n"),m_dwDeviceId));
; 923  :     m_hDevice = pPostInitBuf->p_hDevice;

  00004	e5913000	 ldr         r3, [r1]

; 924  :     return dwError == ERROR_SUCCESS;

  00008	e3a00001	 mov         r0, #1
  0000c	e5823014	 str         r3, [r2, #0x14]

; 925  : }    

  00010	e12fff1e	 bx          lr
  00014		 |$M33693|

			 ENDP  ; |?PostInit@CDisk@@QAAHPAU_POST_INIT_BUF@@@Z|, CDisk::PostInit

	EXPORT	|?GetDiskInfo@CDisk@@QAAKPAU_IOREQ@@@Z|	; CDisk::GetDiskInfo
	IMPORT	|memcpy|
	IMPORT	|__C_specific_handler|
; File d:\wince500\platform\bvdmain\drivers\atapi\diskmain.h

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

  00000			 AREA	 |.xdata$$?GetDiskInfo@CDisk@@QAAKPAU_IOREQ@@@Z|, DATA, SELECTION=5, ASSOC=|.text| { |?GetDiskInfo@CDisk@@QAAKPAU_IOREQ@@@Z| } ; comdat associative
|$T33727| DCD	0x1
	DCD	|$L33704|
	DCD	|$L33705|
	DCD	|$L33700|
	DCD	|$L33701|

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

  00000			 AREA	 |.pdata$$?GetDiskInfo@CDisk@@QAAKPAU_IOREQ@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetDiskInfo@CDisk@@QAAKPAU_IOREQ@@@Z| } ; comdat associative
|$T33729| DCD	|$L33728|
	DCD	0xc0002d04

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

  00000			 AREA	 |.pdata$$?GetDiskInfo@CDisk@@QAAKPAU_IOREQ@@@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetDiskInfo@CDisk@@QAAKPAU_IOREQ@@@Z| } ; comdat associative
|$T33731| DCD	|$L33700|
	DCD	0x40000200
; Function compile flags: /Ogsy
; File d:\wince500\platform\bvdmain\drivers\atapi\diskmain.cpp

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

  00000	00000000	 DCD         |__C_specific_handler|
  00004	00000000	 DCD         |$T33727|

  00008		 |?GetDiskInfo@CDisk@@QAAKPAU_IOREQ@@@Z| PROC ; CDisk::GetDiskInfo

; 929  : {

  00008		 |$L33728|
  00008	e1a0c00d	 mov         r12, sp
  0000c	e92d5870	 stmdb       sp!, {r4 - r6, r11, r12, lr}
  00010	e28db018	 add         r11, sp, #0x18
  00014	e24dd004	 sub         sp, sp, #4
  00018		 |$L33725|
  00018	e1a05001	 mov         r5, r1

; 930  :     DWORD dwError = ERROR_SUCCESS;
; 931  :     DISK_INFO *pInfo = NULL;
; 932  : 
; 933  : // The Call can come in three flavors (BC).  Just inbuf is specified, outbuf is specified or both.  If both then outbuf is used
; 934  :     if (pIOReq->pInBuf) {

  0001c	e5953018	 ldr         r3, [r5, #0x18]
  00020	e3a04000	 mov         r4, #0
  00024	e3a06000	 mov         r6, #0
  00028	e1b02003	 movs        r2, r3
  0002c	0a000003	 beq         |$L33065|

; 935  :         if (pIOReq->dwInBufSize != sizeof(DISK_INFO)) 

  00030	e595301c	 ldr         r3, [r5, #0x1C]
  00034	e3530018	 cmp         r3, #0x18

; 936  :             return ERROR_INVALID_PARAMETER;

  00038	1a000009	 bne         |$L33723|

; 937  :         pInfo = (DISK_INFO *)pIOReq->pInBuf;

  0003c	e1a06002	 mov         r6, r2
  00040		 |$L33065|

; 938  :     }
; 939  : 
; 940  

⌨️ 快捷键说明

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