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

📄 ep931xide.cod

📁 PXA270的BSP
💻 COD
📖 第 1 页 / 共 5 页
字号:
; 823  : { 

  00000		 |$L33877|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004	e24dd004	 sub         sp, sp, #4
  00008		 |$M33875|
  00008	e1a04000	 mov         r4, r0

; 824  :     volatile BYTE            bStatus;
; 825  : 
; 826  :     DEBUGMSG
; 827  :     ( 
; 828  :         ZONE_DMA, 
; 829  :         (
; 830  :             TEXT("ATAPI:EndDMA\r\n")
; 831  :         )
; 832  :     );
; 833  : 
; 834  : 	//* * * CAMSDB - Clear the IDE IRQ.
; 835  :     bStatus = (BYTE)(ATAReadRegister(CSDA_STAT_REG) & 0xFF);

  0000c	e3a0001e	 mov         r0, #0x1E
  00010	eb000000	 bl          |?ATAReadRegister@@YAKK@Z|

; 836  : 
; 837  :     //
; 838  :     // Clear the M2M DMA interrupt register. 
; 839  :     //
; 840  :     m_pulDmaBase[M2M_INT>>2] = 0;

  00014	e594200c	 ldr         r2, [r4, #0xC]
  00018	e3a01000	 mov         r1, #0
  0001c	e5cd0000	 strb        r0, [sp]
  00020	e5821004	 str         r1, [r2, #4]

; 841  : 
; 842  :     //
; 843  :     // Disable the DMA channel.
; 844  :     //
; 845  :     m_pulDmaBase[M2M_CTRL>>2] = 0;

  00024	e594300c	 ldr         r3, [r4, #0xC]

; 846  : 
; 847  :     return TRUE;

  00028	e3a00001	 mov         r0, #1
  0002c	e5831000	 str         r1, [r3]

; 848  : }

  00030	e28dd004	 add         sp, sp, #4
  00034	e8bd4010	 ldmia       sp!, {r4, lr}
  00038	e12fff1e	 bx          lr
  0003c		 |$M33876|

			 ENDP  ; |?EndDMA@CEP931xPort@@QAAHXZ|, CEP931xPort::EndDMA

	EXPORT	|?AbortDMA@CEP931xPort@@QAAHXZ|		; CEP931xPort::AbortDMA

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

  00000			 AREA	 |.pdata$$?AbortDMA@CEP931xPort@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?AbortDMA@CEP931xPort@@QAAHXZ| } ; comdat associative
|$T33888| DCD	|$L33887|
	DCD	0x40000f01
; Function compile flags: /Ogsy

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

  00000		 |?AbortDMA@CEP931xPort@@QAAHXZ| PROC	; CEP931xPort::AbortDMA

; 857  : { 

  00000		 |$L33887|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M33885|
  00004	e1a04000	 mov         r4, r0

; 858  :     BOOL    fRet;
; 859  :     DEBUGMSG
; 860  :     ( 
; 861  :         ZONE_DMA, 
; 862  :         (
; 863  :             TEXT("ATAPI:AbortDMA\r\n")
; 864  :         )
; 865  :     );
; 866  : 
; 867  :     //
; 868  :     // Clear the status register.
; 869  :     //
; 870  :     m_pulDmaBase[M2M_INT>>2] = 0;

  00008	e594300c	 ldr         r3, [r4, #0xC]
  0000c	e3a05000	 mov         r5, #0
  00010	e5835004	 str         r5, [r3, #4]

; 871  :     
; 872  :     //
; 873  :     // Unlock the Buffers and free the mapped pointers.
; 874  :     //
; 875  :     if(m_fAligned)

  00014	e594304c	 ldr         r3, [r4, #0x4C]
  00018	e3530000	 cmp         r3, #0

; 876  :     {
; 877  :         fRet = UnlockPages
; 878  :         ( 
; 879  :             m_pucDmaBuffer,
; 880  :             m_ulDmaCount
; 881  :         );

  0001c	15941038	 ldrne       r1, [r4, #0x38]
  00020	15940030	 ldrne       r0, [r4, #0x30]
  00024	1b000000	 blne        UnlockPages

; 882  :         ASSERT(fRet);
; 883  :     }
; 884  : 
; 885  :     //
; 886  :     // Disable the DMA channel.
; 887  :     //
; 888  :     m_pulDmaBase[M2M_CTRL>>2] = 0;

  00028	e594300c	 ldr         r3, [r4, #0xC]

; 889  : 
; 890  :     return TRUE; 

  0002c	e3a00001	 mov         r0, #1
  00030	e5835000	 str         r5, [r3]

; 891  : }

  00034	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  00038	e12fff1e	 bx          lr
  0003c		 |$M33886|

			 ENDP  ; |?AbortDMA@CEP931xPort@@QAAHXZ|, CEP931xPort::AbortDMA

	EXPORT	|?CompleteDMA@CEP931xPort@@QAAHPAU_SG_BUF@@KH@Z| ; CEP931xPort::CompleteDMA

  00000			 AREA	 |.text| { |?CompleteDMA@CEP931xPort@@QAAHPAU_SG_BUF@@KH@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?CompleteDMA@CEP931xPort@@QAAHPAU_SG_BUF@@KH@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?CompleteDMA@CEP931xPort@@QAAHPAU_SG_BUF@@KH@Z| } ; comdat associative
|$T33908| DCD	|$L33907|
	DCD	0x40002d01
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?CompleteDMA@CEP931xPort@@QAAHPAU_SG_BUF@@KH@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?CompleteDMA@CEP931xPort@@QAAHPAU_SG_BUF@@KH@Z| PROC ; CEP931xPort::CompleteDMA

; 900  : { 

  00000		 |$L33907|
  00000	e92d43f0	 stmdb       sp!, {r4 - r9, lr}
  00004		 |$M33905|
  00004	e1a07002	 mov         r7, r2
  00008	e1a04001	 mov         r4, r1
  0000c	e1a05000	 mov         r5, r0

; 901  :     ULONG   ulDmaCount;
; 902  :     ULONG   ulBuffer;
; 903  :     LPBYTE  pBuffer;
; 904  :     BOOL    fRet = TRUE;
; 905  :     LARGE_INTEGER liStart, liCurrent, liEnd;
; 906  : 
; 907  :     DEBUGMSG
; 908  :     ( 
; 909  :         ZONE_DMA, 
; 910  :         (
; 911  :             TEXT("ATAPI:CompleteDMA\r\n")
; 912  :         )
; 913  :     );
; 914  : 
; 915  :     //
; 916  :     // Unlock the Buffers and free the mapped pointers.
; 917  :     //
; 918  :     if(m_fAligned)

  00010	e595e04c	 ldr         lr, [r5, #0x4C]
  00014	e3a08001	 mov         r8, #1
  00018	e35e0000	 cmp         lr, #0
  0001c	0a000004	 beq         |$L33894|

; 919  :     {
; 920  :         fRet = UnlockPages
; 921  :         ( 
; 922  :             m_pucDmaBuffer,
; 923  :             m_ulDmaCount
; 924  :         );

  00020	e5951038	 ldr         r1, [r5, #0x38]
  00024	e5950030	 ldr         r0, [r5, #0x30]
  00028	eb000000	 bl          UnlockPages
  0002c	e1a08000	 mov         r8, r0

; 925  :         ASSERT(fRet);
; 926  :     }
; 927  : 
; 928  :     //
; 929  :     // If the pSgBuf are unaligned, copy the entire buffer to our buffer.
; 930  :     //
; 931  :     else if(!m_fAligned && fRead)

  00030	ea00001c	 b           |$L33172|
  00034		 |$L33894|
  00034	e3530000	 cmp         r3, #0
  00038	0a00001a	 beq         |$L33172|

; 932  :     {
; 933  : 	//QueryPerformanceCounter(&liStart);
; 934  :         ulDmaCount        = 0;

  0003c	e3a06000	 mov         r6, #0

; 935  :         for (ulBuffer = 0; ulBuffer < dwSgCount; ulBuffer++) 

  00040	e3570000	 cmp         r7, #0
  00044	0a000017	 beq         |$L33172|
  00048	e3a09000	 mov         r9, #0
  0004c		 |$L33170|

; 936  :         {
; 937  :             pBuffer = (LPBYTE)MapPtrToProcess(pSgBuf[ulBuffer].sb_buf, GetCallerProcess());

  0004c	eb000000	 bl          GetCallerProcess
  00050	e1a01000	 mov         r1, r0
  00054	e5940000	 ldr         r0, [r4]
  00058	eb000000	 bl          MapPtrToProcess

; 938  : 
; 939  : 			DEBUGMSG( 1, (TEXT("     * * * About to check and possibly do memcopy * * *\r\n")));
; 940  : 
; 941  : 			if (pSgBuf[ulBuffer].sb_len >0x8000 || pSgBuf[ulBuffer].sb_len <=0 || pBuffer == NULL || m_pucDmaBuffer == NULL)

  0005c	e5942004	 ldr         r2, [r4, #4]
  00060	e3520902	 cmp         r2, #2, 18
  00064	8a000009	 bhi         |$L33895|
  00068	e3520000	 cmp         r2, #0
  0006c	0a000008	 beq         |$L33177|
  00070	e3500000	 cmp         r0, #0
  00074	0a000006	 beq         |$L33177|
  00078	e5953030	 ldr         r3, [r5, #0x30]
  0007c	e3530000	 cmp         r3, #0
  00080	0a000003	 beq         |$L33177|

; 947  : 					}
; 948  : 
; 949  : 				if (m_pucDmaBuffer == NULL)
; 950  : 					DEBUGMSG( 1, (TEXT("     * * * m_pucDmaBuffer was NULL * * *\r\n")));
; 951  : 
; 952  : 				if (pBuffer == NULL)
; 953  : 					DEBUGMSG( 1, (TEXT("     * * * pBuffer was NULL * * *\r\n")));
; 954  : 				}
; 955  : 			else
; 956  : 				memcpy(pBuffer, m_pucDmaBuffer + ulDmaCount, pSgBuf[ulBuffer].sb_len);

  00084	e0831006	 add         r1, r3, r6
  00088	eb000000	 bl          memcpy
  0008c	ea000000	 b           |$L33177|
  00090		 |$L33895|

; 942  : 				{
; 943  : 				if (pSgBuf[ulBuffer].sb_len >0x8000 || pSgBuf[ulBuffer].sb_len <0)
; 944  : 					{
; 945  : 					DEBUGMSG( 1, (TEXT("     * * * pSgBuf[ulBuffer].sb_len was %ld * * *\r\n"),pSgBuf[ulBuffer].sb_len));
; 946  : 					pSgBuf[ulBuffer].sb_len = 0;

  00090	e5849004	 str         r9, [r4, #4]
  00094		 |$L33177|

; 957  : 
; 958  :             ulDmaCount+= pSgBuf[ulBuffer].sb_len;

  00094	e5943004	 ldr         r3, [r4, #4]
  00098	e2844008	 add         r4, r4, #8
  0009c	e2577001	 subs        r7, r7, #1
  000a0	e0866003	 add         r6, r6, r3
  000a4	1affffe8	 bne         |$L33170|
  000a8		 |$L33172|

; 959  :         }
; 960  :     //RETAILMSG( 1, (TEXT("     * * * Unaligned copy in CompleteDMA... * * *\r\n")));
; 961  : 
; 962  : 	//QueryPerformanceCounter(&liEnd);
; 963  : 
; 964  : 	//liCurrent.QuadPart = (liEnd.QuadPart - liStart.QuadPart);
; 965  : 	//RETAILMSG ( 1, (TEXT("* * * It took %ld uS for CompleteDMA to complete. * * *\r\n"),liCurrent.QuadPart));
; 966  : 	}
; 967  : 
; 968  :     return fRet;

  000a8	e1a00008	 mov         r0, r8

; 969  : }

  000ac	e8bd43f0	 ldmia       sp!, {r4 - r9, lr}
  000b0	e12fff1e	 bx          lr
  000b4		 |$M33906|

			 ENDP  ; |?CompleteDMA@CEP931xPort@@QAAHPAU_SG_BUF@@KH@Z|, CEP931xPort::CompleteDMA

	EXPORT	|?PIOMode@CEP931xPort@@QAAXXZ|		; CEP931xPort::PIOMode

  00000			 AREA	 |.text| { |?PIOMode@CEP931xPort@@QAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?PIOMode@CEP931xPort@@QAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?PIOMode@CEP931xPort@@QAAXXZ| } ; comdat associative
|$T33916| DCD	|$L33915|
	DCD	0x40001301
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?PIOMode@CEP931xPort@@QAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?PIOMode@CEP931xPort@@QAAXXZ| PROC	; CEP931xPort::PIOMode

; 978  : {

  00000		 |$L33915|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M33913|

; 979  : 
; 980  :     if(m_bDMAState)

  00004	e5903004	 ldr         r3, [r0, #4]
  00008	e3530000	 cmp         r3, #0
  0000c	0a000009	 beq         |$L33189|

; 981  :     {
; 982  :         //
; 983  :         // Disable the dma.
; 984  :         //
; 985  :         *IDE_MDMAOP =  0;

  00010	e59f2030	 ldr         r2, [pc, #0x30]

; 986  :         *IDE_UDMAOP =  0;

  00014	e59f1028	 ldr         r1, [pc, #0x28]

; 987  : 
; 988  :         //
; 989  :         // Disable the IDE channel.
; 990  :         //
; 991  :         *IDE_CFG    = IDE_CFG_IDEEN | IDE_CFG_PIOEN | IDE_CFG_PIO4 | (1 <<IDE_CFG_WST_SHIFT);

  00018	e59fe020	 ldr         lr, [pc, #0x20]
  0001c	e3a03d05	 mov         r3, #5, 26
  00020	e3a04000	 mov         r4, #0
  00024	e5824000	 str         r4, [r2]
  00028	e3833003	 orr         r3, r3, #3
  0002c	e5814000	 str         r4, [r1]
  00030	e58e3000	 str         r3, [lr]

; 992  : 
; 993  :         //
; 994  :         // Set the DMA state to false.
; 995  :         //
; 996  :         m_bDMAState = FALSE;

  00034	e5804004	 str         r4, [r0, #4]
  00038		 |$L33189|

; 997  :     }
; 998  : }

  00038	e8bd4010	 ldmia       sp!, {r4, lr}
  0003c	e12fff1e	 bx          lr
  00040		 |$L33918|
  00040	b00a0004	 DCD         0xb00a0004
  00044	b00a000c	 DCD         0xb00a000c
  00048	b00a0008	 DCD         0xb00a0008
  0004c		 |$M33914|

			 ENDP  ; |?PIOMode@CEP931xPort@@QAAXXZ|, CEP931xPort::PIOMode

	EXPORT	|?DumpDmaState@CEP931xPort@@QAAXXZ|	; CEP931xPort::DumpDmaState
	EXPORT	|??_C@_1EA@GAHFIFFD@?$AA?5?$AA?5?$AA?5?$AA?5?$AAM?$AA2?$AAM?$AA_?$AAC?$AAT?$AAR?$AAL?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5@| [ DATA ] ; `string'
	EXPORT	|??_C@_1EA@HNCDLAKG@?$AA?5?$AA?5?$AA?5?$AA?5?$AAM?$AA2?$AAM?$AA_?$AAI?$AAN?$AAT?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5@| [ DATA ] ; `string'
	EXPORT	|??_C@_1EA@IJLJNJMK@?$AA?5?$AA?5?$AA?5?$AA?5?$AAM?$AA2?$AAM?$AA_?$AAS?$AAT?$AAA?$AAT?$AAU?$AAS?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5@| [ DATA ] ; `string'
	EXPORT	|??_C@_1EA@PBPJDOMF@?$AA?5?$AA?5?$AA?5?$AA?5?$AAM?$AA2?$AAM?$AA_?$AAB?$AAC?$AAR?$AA0?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5@| [ DATA ] ; `string'
	EXPORT	|??_C@_1EA@FAMALKCL@?$AA?5?$AA?5?$AA?5?$AA?5?$AAM?$AA2?$AAM?$AA_?$AAB?$AAC?$AAR?$AA1?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5?$AA?5@| [ DATA ] ; `string'
	EXPORT	|??_C@_1EA@GBGJHPME@?$AA?5?$AA?5?$AA?5?$AA?5?$AAM?$AA2?$AAM?$AA_?$AAS?$AAA?$AAR?$AA_?$AAB?$AAA?$AAS?$AAE?$AA0?

⌨️ 快捷键说明

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