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

📄 driver.cod

📁 PXA255/270平台的 DM9000AE网卡驱动程序
💻 COD
📖 第 1 页 / 共 5 页
字号:
  004ec	e3a04006	 mov         r4, #6
  004f0	e5874000	 str         r4, [r7]
  004f4	e3560006	 cmp         r6, #6
  004f8	3a000067	 bcc         |$L36302|
  004fc	e598000c	 ldr         r0, [r8, #0xC]
  00500	e28d1014	 add         r1, sp, #0x14
  00504	e5903000	 ldr         r3, [r0]
  00508	e5933004	 ldr         r3, [r3, #4]
  0050c	e1a0e00f	 mov         lr, pc
  00510	e12fff13	 bx          r3
  00514	ea000064	 b           |$L36300|
  00518		 |$L35529|

; 544  : 
; 545  : 		HANDLE_QUERY( OID_802_3_RCV_ERROR_ALIGNMENT,
; 546  : 			&m_pLower->m_szStatistics[TID_802_3_RCV_ERROR_ALIGNMENT],sizeof(U32));			

  00518	e3a04004	 mov         r4, #4
  0051c	e5874000	 str         r4, [r7]
  00520	e3560004	 cmp         r6, #4
  00524	3a00005c	 bcc         |$L36302|
  00528	e598300c	 ldr         r3, [r8, #0xC]
  0052c	e2830f57	 add         r0, r3, #0x57, 30
  00530	ea00005d	 b           |$L36300|
  00534		 |$L36286|

; 500  : 		
; 501  : 	switch (Oid) {

  00534	e59f31c4	 ldr         r3, [pc, #0x1C4]
  00538	e1590003	 cmp         r9, r3
  0053c	8a00002f	 bhi         |$L36288|
  00540	0a000027	 beq         |$L35535|
  00544	e59f31b0	 ldr         r3, [pc, #0x1B0]
  00548	e1590003	 cmp         r9, r3
  0054c	0a00001d	 beq         |$L35541|
  00550	e59f31a0	 ldr         r3, [pc, #0x1A0]
  00554	e1590003	 cmp         r9, r3
  00558	0a000013	 beq         |$L35547|
  0055c	e59f3190	 ldr         r3, [pc, #0x190]
  00560	e1590003	 cmp         r9, r3
  00564	0a000009	 beq         |$L35553|
  00568	e59f3180	 ldr         r3, [pc, #0x180]
  0056c	e1590003	 cmp         r9, r3
  00570	1a00002e	 bne         |$L35679|

; 555  : 		HANDLE_QUERY( OID_802_3_XMIT_MAX_COLLISIONS,
; 556  : 			&m_pLower->m_szStatistics[TID_802_3_XMIT_MAX_COLLISIONS],sizeof(U32));

  00574	e3a04004	 mov         r4, #4
  00578	e5874000	 str         r4, [r7]
  0057c	e3560004	 cmp         r6, #4
  00580	3a000045	 bcc         |$L36302|
  00584	e598300c	 ldr         r3, [r8, #0xC]
  00588	e2830e17	 add         r0, r3, #0x17, 28
  0058c	ea000046	 b           |$L36300|
  00590		 |$L35553|

; 553  : 		HANDLE_QUERY( OID_802_3_XMIT_DEFERRED,
; 554  : 			&m_pLower->m_szStatistics[TID_802_3_XMIT_DEFERRED],sizeof(U32));

  00590	e3a04004	 mov         r4, #4
  00594	e5874000	 str         r4, [r7]
  00598	e3560004	 cmp         r6, #4
  0059c	3a00003e	 bcc         |$L36302|
  005a0	e598300c	 ldr         r3, [r8, #0xC]
  005a4	e2830f5b	 add         r0, r3, #0x5B, 30
  005a8	ea00003f	 b           |$L36300|
  005ac		 |$L35547|

; 551  : 		HANDLE_QUERY( OID_802_3_XMIT_MORE_COLLISIONS,
; 552  : 			&m_pLower->m_szStatistics[TID_802_3_XMIT_MORE_COLLISIONS],sizeof(U32));

  005ac	e3a04004	 mov         r4, #4
  005b0	e5874000	 str         r4, [r7]
  005b4	e3560004	 cmp         r6, #4
  005b8	3a000037	 bcc         |$L36302|
  005bc	e598300c	 ldr         r3, [r8, #0xC]
  005c0	e2830f5a	 add         r0, r3, #0x5A, 30
  005c4	ea000038	 b           |$L36300|
  005c8		 |$L35541|

; 549  : 		HANDLE_QUERY( OID_802_3_XMIT_ONE_COLLISION,
; 550  : 			&m_pLower->m_szStatistics[TID_802_3_XMIT_ONE_COLLISION],sizeof(U32));

  005c8	e3a04004	 mov         r4, #4
  005cc	e5874000	 str         r4, [r7]
  005d0	e3560004	 cmp         r6, #4
  005d4	3a000030	 bcc         |$L36302|
  005d8	e598300c	 ldr         r3, [r8, #0xC]
  005dc	e2830f59	 add         r0, r3, #0x59, 30
  005e0	ea000031	 b           |$L36300|
  005e4		 |$L35535|

; 547  :         HANDLE_QUERY( OID_802_3_RCV_OVERRUN,
; 548  : 			&m_pLower->m_szStatistics[TID_802_3_RCV_OVERRUN],sizeof(U32));

  005e4	e3a04004	 mov         r4, #4
  005e8	e5874000	 str         r4, [r7]
  005ec	e3560004	 cmp         r6, #4
  005f0	3a000029	 bcc         |$L36302|
  005f4	e598300c	 ldr         r3, [r8, #0xC]
  005f8	e2830e16	 add         r0, r3, #0x16, 28
  005fc	ea00002a	 b           |$L36300|
  00600		 |$L36288|

; 500  : 		
; 501  : 	switch (Oid) {

  00600	e59f30e4	 ldr         r3, [pc, #0xE4]
  00604	e1590003	 cmp         r9, r3
  00608	0a00001f	 beq         |$L35565|
  0060c	e59f30d4	 ldr         r3, [pc, #0xD4]
  00610	e1590003	 cmp         r9, r3
  00614	0a000015	 beq         |$L35571|
  00618	e59f30c4	 ldr         r3, [pc, #0xC4]
  0061c	e1590003	 cmp         r9, r3
  00620	0a00000b	 beq         |$L35577|
  00624	e59f30b4	 ldr         r3, [pc, #0xB4]
  00628	e1590003	 cmp         r9, r3
  0062c	0a000001	 beq         |$L35583|
  00630		 |$L35679|

; 609  : 			
; 610  : 		default:
; 611  : 			status = NDIS_STATUS_INVALID_OID;

  00630	e59f40a4	 ldr         r4, [pc, #0xA4]

; 612  : 			break;

  00634	ea000023	 b           |$L35683|
  00638		 |$L35583|

; 563  : 		HANDLE_QUERY( OID_802_3_XMIT_LATE_COLLISIONS,
; 564  : 			&m_pLower->m_szStatistics[TID_802_3_XMIT_LATE_COLLISIONS],sizeof(U32));

  00638	e3a04004	 mov         r4, #4
  0063c	e5874000	 str         r4, [r7]
  00640	e3560004	 cmp         r6, #4
  00644	3a000014	 bcc         |$L36302|
  00648	e598300c	 ldr         r3, [r8, #0xC]
  0064c	e2830d06	 add         r0, r3, #6, 26
  00650	ea000015	 b           |$L36300|
  00654		 |$L35577|

; 561  : 		HANDLE_QUERY( OID_802_3_XMIT_TIMES_CRS_LOST,
; 562  : 			&m_pLower->m_szStatistics[TID_802_3_XMIT_TIMES_CRS_LOST],sizeof(U32));

  00654	e3a04004	 mov         r4, #4
  00658	e5874000	 str         r4, [r7]
  0065c	e3560004	 cmp         r6, #4
  00660	3a00000d	 bcc         |$L36302|
  00664	e598300c	 ldr         r3, [r8, #0xC]
  00668	e2830f5f	 add         r0, r3, #0x5F, 30
  0066c	ea00000e	 b           |$L36300|
  00670		 |$L35571|

; 559  : 		HANDLE_QUERY( OID_802_3_XMIT_HEARTBEAT_FAILURE,
; 560  : 			&m_pLower->m_szStatistics[TID_802_3_XMIT_HEARTBEAT_FAILURE],sizeof(U32));

  00670	e3a04004	 mov         r4, #4
  00674	e5874000	 str         r4, [r7]
  00678	e3560004	 cmp         r6, #4
  0067c	3a000006	 bcc         |$L36302|
  00680	e598300c	 ldr         r3, [r8, #0xC]
  00684	e2830f5e	 add         r0, r3, #0x5E, 30
  00688	ea000007	 b           |$L36300|
  0068c		 |$L35565|

; 557  : 		HANDLE_QUERY( OID_802_3_XMIT_UNDERRUN,
; 558  : 			&m_pLower->m_szStatistics[TID_802_3_XMIT_UNDERRUN],sizeof(U32));

  0068c	e3a04004	 mov         r4, #4
  00690	e5874000	 str         r4, [r7]
  00694	e3560004	 cmp         r6, #4
  00698	2a000001	 bcs         |$L35567|
  0069c		 |$L36302|
  0069c	e59f4034	 ldr         r4, [pc, #0x34]
  006a0	ea000008	 b           |$L35683|
  006a4		 |$L35567|
  006a4	e598300c	 ldr         r3, [r8, #0xC]
  006a8	e2830f5d	 add         r0, r3, #0x5D, 30
  006ac		 |$L36300|
  006ac	e5854000	 str         r4, [r5]
  006b0		 |$L35432|

; 613  : 	} // of switch
; 614  : 
; 615  : 	if(status == NDIS_STATUS_SUCCESS)

  006b0	e59d400c	 ldr         r4, [sp, #0xC]
  006b4	e3540000	 cmp         r4, #0

; 616  : 	{
; 617  : 		NdisMoveMemory(InfoBuffer,panswer,*BytesWritten);

  006b8	05952000	 ldreq       r2, [r5]
  006bc	01a01000	 moveq       r1, r0
  006c0	01a0000a	 moveq       r0, r10
  006c4	0b000000	 bleq        memcpy
  006c8		 |$L35683|

; 485  : 	NDIS_STATUS	status = NDIS_STATUS_SUCCESS;
; 486  : 	
; 487  : 	PVOID	panswer;
; 488  : 	U8		szbuffer[32];
; 489  : 	U32		tmp32;
; 490  : 	
; 491  : 	// pass to lower object, to see if it can handle this query,
; 492  : 	// if it can, return TRUE and set status.
; 493  : 	if(m_pLower->DeviceQueryInformation(
; 494  : 		&status,
; 495  : 		Oid,
; 496  : 		InfoBuffer,
; 497  : 		InfoBufferLength,
; 498  : 		BytesWritten,
; 499  : 		BytesNeeded)) return status;

  006c8	e1a00004	 mov         r0, r4

; 618  : 	}
; 619  : 
; 620  : 	return status;
; 621  : }

  006cc	e28dd034	 add         sp, sp, #0x34
  006d0	e8bd47f0	 ldmia       sp!, {r4 - r10, lr}
  006d4	e12fff1e	 bx          lr
  006d8		 |$L36310|
  006d8	c0010014	 DCD         0xc0010014
  006dc	c0010017	 DCD         0xc0010017
  006e0	01020207	 DCD         0x1020207
  006e4	01020206	 DCD         0x1020206
  006e8	01020205	 DCD         0x1020205
  006ec	01020204	 DCD         0x1020204
  006f0	01020202	 DCD         0x1020202
  006f4	01020201	 DCD         0x1020201
  006f8	01020103	 DCD         0x1020103
  006fc	01020102	 DCD         0x1020102
  00700	01020203	 DCD         0x1020203
  00704	01010104	 DCD         0x1010104
  00708	01010103	 DCD         0x1010103
  0070c	01010102	 DCD         0x1010102
  00710	01010101	 DCD         0x1010101
  00714	00020105	 DCD         0x20105
  00718	00020103	 DCD         0x20103
  0071c	00020102	 DCD         0x20102
  00720	0002020d	 DCD         0x2020d
  00724	01020101	 DCD         0x1020101
  00728	00000000	 DCD         |??_C@_0BL@BLOGHFBJ@Davicom?5Semiconductor?0?5Inc?$AA@|
  0072c	00000000	 DCD         |?gszNICSupportedOid@@3PAKA|
  00730	00010101	 DCD         0x10101
  00734	00020101	 DCD         0x20101
  00738		 |$M36306|

			 ENDP  ; |?DriverQueryInformation@NIC_DRIVER_OBJECT@@UAAHKPAXKPAK1@Z|, NIC_DRIVER_OBJECT::DriverQueryInformation

	EXPORT	|?DriverSetInformation@NIC_DRIVER_OBJECT@@UAAHKPAXKPAK1@Z| ; NIC_DRIVER_OBJECT::DriverSetInformation

  00000			 AREA	 |.text| { |?DriverSetInformation@NIC_DRIVER_OBJECT@@UAAHKPAXKPAK1@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?DriverSetInformation@NIC_DRIVER_OBJECT@@UAAHKPAXKPAK1@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DriverSetInformation@NIC_DRIVER_OBJECT@@UAAHKPAXKPAK1@Z| } ; comdat associative
|$T36326| DCD	|$L36325|
	DCD	0x40004902
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?DriverSetInformation@NIC_DRIVER_OBJECT@@UAAHKPAXKPAK1@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?DriverSetInformation@NIC_DRIVER_OBJECT@@UAAHKPAXKPAK1@Z| PROC ; NIC_DRIVER_OBJECT::DriverSetInformation

; 638  : {

  00000		 |$L36325|
  00000	e92d47f0	 stmdb       sp!, {r4 - r10, lr}
  00004	e24dd010	 sub         sp, sp, #0x10
  00008		 |$M36323|
  00008	e1a06003	 mov         r6, r3
  0000c	e1a09002	 mov         r9, r2
  00010	e1a05001	 mov         r5, r1
  00014	e1a07000	 mov         r7, r0

; 639  : 	NDIS_STATUS	status = NDIS_STATUS_SUCCESS;
; 640  : 
; 641  : 	// pass to lower object, to see if it can handle this request,
; 642  : 	// if it can, return TRUE and set status.
; 643  : 	if(m_pLower->DeviceSetInformation(
; 644  : 		&status,
; 645  : 		Oid,
; 646  : 		InfoBuffer,
; 647  : 		InfoBufferLength,
; 648  : 		BytesRead,
; 649  : 		BytesNeeded)) return status;

  00018	e597000c	 ldr         r0, [r7, #0xC]
  0001c	e3a03000	 mov         r3, #0
  00020	e59d8034	 ldr         r8, [sp, #0x34]
  00024	e58d300c	 str         r3, [sp, #0xC]
  00028	e590e000	 ldr         lr, [r0]
  0002c	e59da030	 ldr         r10, [sp, #0x30]
  00030	e1a03009	 mov         r3, r9
  00034	e59e4024	 ldr         r4, [lr, #0x24]
  00038	e1a02005	 mov         r2, r5
  0003c	e28d100c	 add         r1, sp, #0xC
  00040	e58d8008	 str         r8, [sp, #8]
  00044	e58da004	 str         r10, [sp, #4]
  00048	e58d6000	 str         r6, [sp]
  0004c	e1a0e00f	 mov         lr, pc
  00050	e12fff14	 bx          r4
  00054	e3500000	 cmp         r0, #0
  00058	1a000027	 bne         |$L36314|

; 650  : 
; 651  : 	switch (Oid)

  0005c	e59f30bc	 ldr         r3, [pc, #0xBC]
  00060	e1550003	 cmp         r5, r3
  00064	0a000018	 beq         |$L35700|
  00068	e59f30ac	 ldr         r3, [pc, #0xAC]
  0006c	e1550003	 cmp         r5, r3
  00070	0a000021	 beq         |$L36314|
  00074	e59f309c	 ldr         r3, [pc, #0x9C]
  00078	e1550003	 cmp         r5, r3

; 666  : 
; 667  : 		// don't care oids
; 668  : 		case OID_GEN_CURRENT_LOOKAHEAD:
; 669  : 			break;
; 670  : 
; 671  : 		case OID_GEN_NETWORK_LAYER_ADDRESSES:
; 672  : 		default:
; 673  : 			status = NDIS_STATUS_INVALID_OID;

  0007c	159f0090	 ldrne       r0, [pc, #0x90]
  00080	1a00001e	 bne         |$L35697|
  00084	e597300c	 ldr         r3, [r7, #0xC]
  00088	e1a02006	 mov         r2, r6
  0008c	e1a01009	 mov         r1, r9
  00090	e2830f79	 add         r0, r3, #0x79, 30
  00094	eb000000	 bl          memcpy
  00098	e59f3070	 ldr         r3, [pc, #0x70]
  0009c	e597200c	 ldr         r2, [r7, #0xC]
  000a0	e0831396	 umull       r1, r3, r6, r3
  000a4	e1a03123	 mov         r3, r3, lsr #2
  000a8	e5823364	 str         r3, [r2, #0x364]
  000ac	e597000c	 ldr         r0, [r7, #0xC]
  000b0	e5903000	 ldr         r3, [r0]
  000b4	e5902118	 ldr         r2, [r0, #0x118]
  000b8	e5933040	 ldr         r3, [r3, #0x40]
  000bc	e3821002	 orr         r1, r2, #2
  000c0	e1a0e00f	 mov         lr, pc
  000c4	e12fff13	 bx          r3
  000c8	ea00000b	 b           |$L36314|
  000cc		 |$L35700|

; 652  : 	{
; 653  : 		HANDLE_SET( OID_GEN_CURRENT_PACKET_FILTER,sizeof(U32));

  000cc	e3a03004	 mov         r3, #4
  000d0	e3560004	 cmp         r6, #4
  000d4	359f0030	 ldrcc       r0, [pc, #0x30]
  000d8	e5883000	 str         r3, [r8]
  000dc	3a000007	 bcc         |$L35697|
  000e0	e58a3000	 str         r3, [r10]
  000e4	e597000c	 ldr         r0, [r7, #0xC]
  000e8	e5991000	 ldr         r1, [r9]
  000ec	e5903000	 ldr         r3, [r0]
  000f0	e5933040	 ldr         r3, [r3, #0x40]
  000f4	e1a0e00f	 mov         lr, pc
  000f8	e12fff13	 bx          r3
  000fc		 |$L36314|

; 654  : 		
; 655  : 		case OID_802_3_MULTICAST_LIST:
; 656  : 			NdisMoveMemory(
; 657  : 				&m_pLower->m_szMulticastList[0][0],
; 658  : 				InfoBuffer,
; 659  : 				InfoBufferLength);
; 660  : 			m_pLower->m_nMulticasts = 
; 661  : 				InfoBufferLength / ETH_ADDRESS_LENGTH;
; 662  : 			m_pLower->D

⌨️ 快捷键说明

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