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

📄 device.cod

📁 PXA255/270平台的 DM9000AE网卡驱动程序
💻 COD
📖 第 1 页 / 共 4 页
字号:
|$T35741| DCD	|$L35740|
	DCD	0x40001501

  00000			 AREA	 |.rdata| { |??_C@_1EM@GMKJFEJB@?$AA?$FL?$AAd?$AAm?$AA9?$AA?3?$AA?5?$AAT?$AAr?$AAi?$AAe?$AAs?$AA?5?$AAt?$AAo?$AA?5?$AAm?$AAa?$AAp?$AA?5?$AAi@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EM@GMKJFEJB@?$AA?$FL?$AAd?$AAm?$AA9?$AA?3?$AA?5?$AAT?$AAr?$AAi?$AAe?$AAs?$AA?5?$AAt?$AAo?$AA?5?$AAm?$AAa?$AAp?$AA?5?$AAi@| DCB "["
	DCB	0x0, "d", 0x0, "m", 0x0, "9", 0x0, ":", 0x0, " ", 0x0, "T"
	DCB	0x0, "r", 0x0, "i", 0x0, "e", 0x0, "s", 0x0, " ", 0x0, "t"
	DCB	0x0, "o", 0x0, " ", 0x0, "m", 0x0, "a", 0x0, "p", 0x0, " "
	DCB	0x0, "i", 0x0, "o", 0x0, " ", 0x0, "s", 0x0, "p", 0x0, "a"
	DCB	0x0, "c", 0x0, "e", 0x0, " ", 0x0, "w", 0x0, "i", 0x0, "t"
	DCB	0x0, "h", 0x0, " ", 0x0, "%", 0x0, "X", 0x0, 0xd, 0x0, 0xa
	DCB	0x0, 0x0, 0x0				; `string'

  00000			 AREA	 |.rdata| { |??_C@_1EC@EHOIAMB@?$AA?$FL?$AAd?$AAm?$AA9?$AA?3?$AA?5?$AAT?$AAh?$AAe?$AA?5?$AAm?$AAa?$AAp?$AAp?$AAe?$AAd?$AA?5?$AAa?$AAd?$AAd@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EC@EHOIAMB@?$AA?$FL?$AAd?$AAm?$AA9?$AA?3?$AA?5?$AAT?$AAh?$AAe?$AA?5?$AAm?$AAa?$AAp?$AAp?$AAe?$AAd?$AA?5?$AAa?$AAd?$AAd@| DCB "["
	DCB	0x0, "d", 0x0, "m", 0x0, "9", 0x0, ":", 0x0, " ", 0x0, "T"
	DCB	0x0, "h", 0x0, "e", 0x0, " ", 0x0, "m", 0x0, "a", 0x0, "p"
	DCB	0x0, "p", 0x0, "e", 0x0, "d", 0x0, " ", 0x0, "a", 0x0, "d"
	DCB	0x0, "d", 0x0, "r", 0x0, "e", 0x0, "s", 0x0, "s", 0x0, " "
	DCB	0x0, "i", 0x0, "s", 0x0, " ", 0x0, "%", 0x0, "X", 0x0, 0xd
	DCB	0x0, 0xa, 0x0, 0x0, 0x0			; `string'
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?EDeviceRegisterIoSpace@NIC_DEVICE_OBJECT@@UAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?EDeviceRegisterIoSpace@NIC_DEVICE_OBJECT@@UAAXXZ| PROC ; NIC_DEVICE_OBJECT::EDeviceRegisterIoSpace

; 295  : {

  00000		 |$L35740|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M35738|
  00004	e1a05000	 mov         r5, r0

; 296  : 	if(!m_szConfigures[CID_NEED_IO_SPACE]) return;

  00008	e59530b0	 ldr         r3, [r5, #0xB0]
  0000c	e3530000	 cmp         r3, #0
  00010	0a00000b	 beq         |$L35382|

; 297  : 
; 298  : #if OLD_MAPPING_STYLE
; 299  : 	NDIS_STATUS	status;
; 300  : 	if((status = NdisMRegisterIoPortRange(
; 301  : 		(PVOID*)&m_szCurrentSettings[SID_PORT_BASE_ADDRESS],
; 302  : 		m_pUpper->GetNdisHandle(),
; 303  : 		m_szConfigures[CID_IO_BASE_ADDRESS],
; 304  : 		m_szConfigures[CID_IO_RANGE])) != NDIS_STATUS_SUCCESS)	
; 305  : 		THROW((status));
; 306  : 		PULONG BusBase;
; 307  : 		PHYSICAL_ADDRESS PhysicalIoBase;
; 308  : #endif
; 309  : 
; 310  : 	U32		uBase;
; 311  : 	PHYSICAL_ADDRESS	phyAddr;
; 312  : 	
; 313  : 	phyAddr.HighPart = 0;
; 314  : 	phyAddr.LowPart = m_szConfigures[CID_IO_BASE_ADDRESS];
; 315  : 	
; 316  : 	DEBUG_PRINT((
; 317  : 		TEXT("[dm9: Tries to map io space with %X\r\n"), phyAddr.LowPart
; 318  : 		));

  00014	e5951084	 ldr         r1, [r5, #0x84]
  00018	e59f0030	 ldr         r0, [pc, #0x30]
  0001c	eb000000	 bl          NKDbgPrintfW

; 319  : 	#if 0		
; 320  : 	if(!(uBase = (U32)MmMapIoSpace(phyAddr, 16, FALSE)))
; 321  : 		THROW((ERR_STRING("Fails to map io space")));
; 322  : 	#endif
; 323  : 	uBase = 0xba600000;
; 324  : 		
; 325  : 	DEBUG_PRINT((
; 326  : 		TEXT("[dm9: The mapped address is %X\r\n"), uBase
; 327  : 		));	

  00020	e3a044ba	 mov         r4, #0xBA, 8
  00024	e59f0020	 ldr         r0, [pc, #0x20]
  00028	e3844606	 orr         r4, r4, #6, 12
  0002c	e1a01004	 mov         r1, r4
  00030	eb000000	 bl          NKDbgPrintfW

; 328  : 
; 329  : 	RETAILMSG (1, (TEXT("[dm9: The mapped address is %X\r\n"), uBase));

  00034	e59f0010	 ldr         r0, [pc, #0x10]
  00038	e1a01004	 mov         r1, r4
  0003c	eb000000	 bl          NKDbgPrintfW

; 330  : 		
; 331  : 	m_szCurrentSettings[SID_PORT_BASE_ADDRESS] = uBase;	

  00040	e58540d8	 str         r4, [r5, #0xD8]
  00044		 |$L35382|

; 332  : 
; 333  : }		

  00044	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  00048	e12fff1e	 bx          lr
  0004c		 |$L35743|
  0004c	00000000	 DCD         |??_C@_1EC@EHOIAMB@?$AA?$FL?$AAd?$AAm?$AA9?$AA?3?$AA?5?$AAT?$AAh?$AAe?$AA?5?$AAm?$AAa?$AAp?$AAp?$AAe?$AAd?$AA?5?$AAa?$AAd?$AAd@|
  00050	00000000	 DCD         |??_C@_1EM@GMKJFEJB@?$AA?$FL?$AAd?$AAm?$AA9?$AA?3?$AA?5?$AAT?$AAr?$AAi?$AAe?$AAs?$AA?5?$AAt?$AAo?$AA?5?$AAm?$AAa?$AAp?$AA?5?$AAi@|
  00054		 |$M35739|

			 ENDP  ; |?EDeviceRegisterIoSpace@NIC_DEVICE_OBJECT@@UAAXXZ|, NIC_DEVICE_OBJECT::EDeviceRegisterIoSpace

	EXPORT	|?EDeviceLoadEeprom@NIC_DEVICE_OBJECT@@UAAXXZ| ; NIC_DEVICE_OBJECT::EDeviceLoadEeprom

  00000			 AREA	 |.text| { |?EDeviceLoadEeprom@NIC_DEVICE_OBJECT@@UAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?EDeviceLoadEeprom@NIC_DEVICE_OBJECT@@UAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?EDeviceLoadEeprom@NIC_DEVICE_OBJECT@@UAAXXZ| } ; comdat associative
|$T35751| DCD	|$L35750|
	DCD	0x40001401
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?EDeviceLoadEeprom@NIC_DEVICE_OBJECT@@UAAXXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?EDeviceLoadEeprom@NIC_DEVICE_OBJECT@@UAAXXZ| PROC ; NIC_DEVICE_OBJECT::EDeviceLoadEeprom

; 353  : {

  00000		 |$L35750|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M35748|

; 354  : //	int		n;
; 355  : 	EEPROM_DATA_TYPE	*pcurr=(EEPROM_DATA_TYPE*)&m_szEeprom[0];

  00004	e2801b01	 add         r1, r0, #1, 22

; 356  : 
; 357  : #if 0
; 358  : 	for(n=0;n<(DIM(m_szEeprom)/sizeof(EEPROM_DATA_TYPE));n++,pcurr++)
; 359  : 	{
; 360  : 		*pcurr = DeviceReadEeprom(n);
; 361  : 
; 362  : 	} // of for offset n
; 363  : #endif
; 364  : 	*(pcurr + 0) = 0xc000;

  00008	e3a03903	 mov         r3, #3, 18
  0000c	e1e133b8	 strh        r3, [r1, #0x38]!

; 365  : 	*(pcurr + 1) = 0x2826;

  00010	e3a03b0a	 mov         r3, #0xA, 22

; 366  : 	*(pcurr + 2) = 0x3096;

  00014	e3a02dc2	 mov         r2, #0xC2, 26
  00018	e3833026	 orr         r3, r3, #0x26
  0001c	e3822016	 orr         r2, r2, #0x16

; 367  : 	*(pcurr + 3) = 0x28;

  00020	e3a00028	 mov         r0, #0x28

; 368  : 	*(pcurr + 4) = 0x96;

  00024	e3a0e096	 mov         lr, #0x96

; 369  : 	*(pcurr + 5) = 0x30;

  00028	e3a04030	 mov         r4, #0x30

; 370  : 	*(pcurr + 6) = 0x00;	

  0002c	e3a05000	 mov         r5, #0
  00030	e1c130b2	 strh        r3, [r1, #2]
  00034	e1c120b4	 strh        r2, [r1, #4]
  00038	e1c100b6	 strh        r0, [r1, #6]
  0003c	e1c1e0b8	 strh        lr, [r1, #8]
  00040	e1c140ba	 strh        r4, [r1, #0xA]
  00044	e1c150bc	 strh        r5, [r1, #0xC]

; 371  : 	
; 372  : //	DeviceCalculateCRC32(&m_szEeprom[0],DIM(m_szEeprom)-2);
; 373  : }

  00048	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  0004c	e12fff1e	 bx          lr
  00050		 |$M35749|

			 ENDP  ; |?EDeviceLoadEeprom@NIC_DEVICE_OBJECT@@UAAXXZ|, NIC_DEVICE_OBJECT::EDeviceLoadEeprom

	EXPORT	|?DevicePolling@NIC_DEVICE_OBJECT@@QAAHKKKKK@Z| ; NIC_DEVICE_OBJECT::DevicePolling
	IMPORT	|NdisStallExecution|

  00000			 AREA	 |.text| { |?DevicePolling@NIC_DEVICE_OBJECT@@QAAHKKKKK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?DevicePolling@NIC_DEVICE_OBJECT@@QAAHKKKKK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DevicePolling@NIC_DEVICE_OBJECT@@QAAHKKKKK@Z| } ; comdat associative
|$T35770| DCD	|$L35769|
	DCD	0x40001801
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?DevicePolling@NIC_DEVICE_OBJECT@@QAAHKKKKK@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?DevicePolling@NIC_DEVICE_OBJECT@@QAAHKKKKK@Z| PROC ; NIC_DEVICE_OBJECT::DevicePolling

; 381  : {

  00000		 |$L35769|
  00000	e92d43f0	 stmdb       sp!, {r4 - r9, lr}
  00004		 |$M35767|
  00004	e1a07003	 mov         r7, r3
  00008	e1a08002	 mov         r8, r2
  0000c	e1a09001	 mov         r9, r1
  00010	e1a06000	 mov         r6, r0

; 382  : 	for(;uRetries;uRetries--)

  00014	e59d5020	 ldr         r5, [sp, #0x20]
  00018	e3550000	 cmp         r5, #0
  0001c	0a00000c	 beq         |$L35759|
  00020		 |$L35418|

; 383  : 	{
; 384  : 		if((DeviceReadPort(uPort) & uMask) == uExpected) break;

  00020	e596e000	 ldr         lr, [r6]
  00024	e1a01009	 mov         r1, r9
  00028	e1a00006	 mov         r0, r6
  0002c	e59e4048	 ldr         r4, [lr, #0x48]
  00030	e1a0e00f	 mov         lr, pc
  00034	e12fff14	 bx          r4
  00038	e000e008	 and         lr, r0, r8
  0003c	e15e0007	 cmp         lr, r7
  00040	0a000003	 beq         |$L35759|

; 385  : 		NdisStallExecution(uInterval);

  00044	e59d001c	 ldr         r0, [sp, #0x1C]
  00048	eb000000	 bl          NdisStallExecution
  0004c	e2555001	 subs        r5, r5, #1
  00050	1afffff2	 bne         |$L35418|
  00054		 |$L35759|

; 386  : 	} // of retry loop
; 387  : 	
; 388  : 	return (BOOL)uRetries;

  00054	e1a00005	 mov         r0, r5

; 389  : }

  00058	e8bd43f0	 ldmia       sp!, {r4 - r9, lr}
  0005c	e12fff1e	 bx          lr
  00060		 |$M35768|

			 ENDP  ; |?DevicePolling@NIC_DEVICE_OBJECT@@QAAHKKKKK@Z|, NIC_DEVICE_OBJECT::DevicePolling

	EXPORT	|?DeviceCheckForHang@NIC_DEVICE_OBJECT@@UAAHXZ| ; NIC_DEVICE_OBJECT::DeviceCheckForHang
	IMPORT	|memcpy|

  00000			 AREA	 |.text| { |?DeviceCheckForHang@NIC_DEVICE_OBJECT@@UAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$?DeviceCheckForHang@NIC_DEVICE_OBJECT@@UAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?DeviceCheckForHang@NIC_DEVICE_OBJECT@@UAAHXZ| } ; comdat associative
|$T35794| DCD	|$L35793|
	DCD	0x40002e01
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?DeviceCheckForHang@NIC_DEVICE_OBJECT@@UAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |?DeviceCheckForHang@NIC_DEVICE_OBJECT@@UAAHXZ| PROC ; NIC_DEVICE_OBJECT::DeviceCheckForHang

; 392  : {

  00000		 |$L35793|
  00000	e92d4070	 stmdb       sp!, {r4 - r6, lr}
  00004		 |$M35791|
  00004	e1a05000	 mov         r5, r0

; 393  : 
; 394  : 	U32	cr;
; 395  : 
; 396  : 	cr = DeviceGetReceiveStatus();

  00008	e5953000	 ldr         r3, [r5]
  0000c	e5933098	 ldr         r3, [r3, #0x98]
  00010	e1a0e00f	 mov         lr, pc
  00014	e12fff13	 bx          r3
  00018	e1a06000	 mov         r6, r0

; 397  : 	
; 398  : 	U32	rxps,rxci;
; 399  : 	
; 400  : 	rxps = cr >> 31;
; 401  : 	rxci = cr & 0x7FFFFFFF;

  0001c	e1b01fa6	 movs        r1, r6, lsr #31

; 402  : 
; 403  : 	REPORT(TID_NIC_RXPS,rxps);	

  00020	15953184	 ldrne       r3, [r5, #0x184]
  00024	e3c62102	 bic         r2, r6, #2, 2

; 404  : 	REPORT(TID_NIC_RXCI,rxci);	
; 405  : 
; 406  : #ifndef	IMPL_RESET
; 407  : 	return FALSE;
; 408  : #endif
; 409  : 
; 410  : 	U32	lastread = m_szLastStatistics[TID_GEN_RCV_OK];
; 411  : 	U32	lastsent = m_szLastStatistics[TID_GEN_XMIT_OK];
; 412  : 
; 413  : 	memcpy(
; 414  : 		(void*)&m_szLastStatistics,
; 415  : 		(void*)&m_szStatistics,
; 416  : 		sizeof(m_szStatistics));

  00028	e2850f65	 add         r0, r5, #0x65, 30
  0002c	10833001	 addne       r3, r3, r1
  00030	15853184	 strne       r3, [r5, #0x184]
  00034	e3520000	 cmp         r2, #0
  00038	15953188	 ldrne       r3, [r5, #0x188]
  0003c	e2851f51	 add         r1, r5, #0x51, 30
  00040	10833002	 addne       r3, r3, r2
  00044	15853188	 strne       r3, [r5, #0x188]
  00048	e5954198	 ldr         r4, [r5, #0x198]
  0004c	e3a02050	 mov         r2, #0x50
  00050	eb000000	 bl          memcpy

; 417  : 
; 418  : 	// report hang if 
; 419  : 	// 1. receive count stalled but overflow, or
; 420  : 	if((m_szStatistics[TID_GEN_RCV_OK] == lastread) && cr) 

  00054	e5953148	 ldr         r3, [r5, #0x148]
  00058	e1530004	 cmp         r3, r4
  0005c	1a000001	 bne         |$L35436|
  00060	e3560000	 cmp         r6, #0

; 421  : 		return TRUE;

  00064	1a00000d	 bne         |$L35790|
  00068		 |$L35436|

; 422  : 	
; 423  : 	// 2. tx idle while tqueue out of resource
; 424  : 	if(m_pUpper->DriverIsOutOfResource() &&
; 425  : 		(DeviceHardwareStatus() & NIC_HW_TX_IDLE) ) 

  00068	e5950004	 ldr         r0, [r5, #4]
  0006c	e5903000	 ldr         r3, [r0]
  00070	e593303c	 ldr         r3, [r3, #0x3C]
  00074	e1a0e00f	 mov         lr, pc
  00078	e12fff13	 bx          r3
  0007c	e3500000	 cmp         r0, #0
  00080	0a000009	 beq         |$L35437|
  00084	e5953000	 ldr         r3, [r5]
  00088	e1a00005	 mov         r0, r5
  0008c	e593306c	 ldr         r3, [r3, #0x6C]
  00090	e1a0e00f	 mov         lr, pc
  00094	e12fff13	 bx          r3
  00098	e3100001	 tst         r0, #1

⌨️ 快捷键说明

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