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

📄 device.cod

📁 PXA255/270平台的 DM9000AE网卡驱动程序
💻 COD
📖 第 1 页 / 共 4 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4091 

	TTL	E:\WINCE500\PLATFORM\BERRYDALE\SRC\DRIVERS\dm9000\.\device.cpp
	CODE32

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

	EXPORT	|?Constructor@C_Exception@@QAAXPAEK@Z|	; C_Exception::Constructor
	IMPORT	|NdisInitializeString|
; File e:\wince500\platform\berrydale\src\drivers\dm9000\common.h

  00000			 AREA	 |.text| { |?Constructor@C_Exception@@QAAXPAEK@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?Constructor@C_Exception@@QAAXPAEK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?Constructor@C_Exception@@QAAXPAEK@Z| } ; comdat associative
|$T35600| DCD	|$L35599|
	DCD	0x40000501
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?Constructor@C_Exception@@QAAXPAEK@Z| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?Constructor@C_Exception@@QAAXPAEK@Z| PROC ; C_Exception::Constructor

; 122  : 	{

  00000		 |$L35599|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M35597|

; 123  : 		m_uErrorCode = uError;

  00004	e4802004	 str         r2, [r0], #4

; 124  : 		NdisInitializeString(&m_ndisErrorMessage,ptrErr);

  00008	eb000000	 bl          NdisInitializeString

; 125  : 	};

  0000c	e49de004	 ldr         lr, [sp], #4
  00010	e12fff1e	 bx          lr
  00014		 |$M35598|

			 ENDP  ; |?Constructor@C_Exception@@QAAXPAEK@Z|, C_Exception::Constructor

	EXPORT	|?TryLock@CMutex@@QAAHXZ|		; CMutex::TryLock
	IMPORT	|TryEnterCriticalSection|

  00000			 AREA	 |.text| { |?TryLock@CMutex@@QAAHXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?TryLock@CMutex@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?TryLock@CMutex@@QAAHXZ| } ; comdat associative
|$T35610| DCD	|$L35609|
	DCD	0x40000401
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?TryLock@CMutex@@QAAHXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?TryLock@CMutex@@QAAHXZ| PROC		; CMutex::TryLock

; 281  : 	{

  00000		 |$L35609|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M35607|

; 282  : 		return TryEnterCriticalSection(&m_Critical);

  00004	eb000000	 bl          TryEnterCriticalSection

; 283  : 	};

  00008	e49de004	 ldr         lr, [sp], #4
  0000c	e12fff1e	 bx          lr
  00010		 |$M35608|

			 ENDP  ; |?TryLock@CMutex@@QAAHXZ|, CMutex::TryLock

	EXPORT	|?Release@CMutex@@QAAXXZ|		; CMutex::Release
	IMPORT	|LeaveCriticalSection|

  00000			 AREA	 |.text| { |?Release@CMutex@@QAAXXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?Release@CMutex@@QAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?Release@CMutex@@QAAXXZ| } ; comdat associative
|$T35618| DCD	|$L35617|
	DCD	0x40000401
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?Release@CMutex@@QAAXXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?Release@CMutex@@QAAXXZ| PROC		; CMutex::Release

; 292  : 	{

  00000		 |$L35617|
  00000	e52de004	 str         lr, [sp, #-4]!
  00004		 |$M35615|

; 293  : 		LeaveCriticalSection(&m_Critical);

  00004	eb000000	 bl          LeaveCriticalSection

; 294  : 	};

  00008	e49de004	 ldr         lr, [sp], #4
  0000c	e12fff1e	 bx          lr
  00010		 |$M35616|

			 ENDP  ; |?Release@CMutex@@QAAXXZ|, CMutex::Release

	EXPORT	|?GetNdisHandle@NIC_DRIVER_OBJECT@@QAAPAXXZ| ; NIC_DRIVER_OBJECT::GetNdisHandle
; File e:\wince500\platform\berrydale\src\drivers\dm9000\driver.h

  00000			 AREA	 |.text| { |?GetNdisHandle@NIC_DRIVER_OBJECT@@QAAPAXXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000			 AREA	 |.pdata$$?GetNdisHandle@NIC_DRIVER_OBJECT@@QAAPAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetNdisHandle@NIC_DRIVER_OBJECT@@QAAPAXXZ| } ; comdat associative
|$T35628| DCD	|$L35627|
	DCD	0x40000200
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |?GetNdisHandle@NIC_DRIVER_OBJECT@@QAAPAXXZ| }, CODE, ARM, SELECTION=2 ; comdat any

  00000		 |?GetNdisHandle@NIC_DRIVER_OBJECT@@QAAPAXXZ| PROC ; NIC_DRIVER_OBJECT::GetNdisHandle

; 284  : 	NDIS_HANDLE	GetNdisHandle() { return m_NdisHandle; };

  00000		 |$L35627|
  00000		 |$M35625|
  00000	e5900014	 ldr         r0, [r0, #0x14]
  00004	e12fff1e	 bx          lr
  00008		 |$M35626|

			 ENDP  ; |?GetNdisHandle@NIC_DRIVER_OBJECT@@QAAPAXXZ|, NIC_DRIVER_OBJECT::GetNdisHandle

	EXPORT	|?DeviceCalculateCRC32@NIC_DEVICE_OBJECT@@QAAKPAEHH@Z| ; NIC_DEVICE_OBJECT::DeviceCalculateCRC32
; File e:\wince500\platform\berrydale\src\drivers\dm9000\device.cpp

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

  00000			 AREA	 |.pdata$$?DeviceCalculateCRC32@NIC_DEVICE_OBJECT@@QAAKPAEHH@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DeviceCalculateCRC32@NIC_DEVICE_OBJECT@@QAAKPAEHH@Z| } ; comdat associative
|$T35655| DCD	|$L35654|
	DCD	0x40002701
; Function compile flags: /Ogsy

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

  00000		 |?DeviceCalculateCRC32@NIC_DEVICE_OBJECT@@QAAKPAEHH@Z| PROC ; NIC_DEVICE_OBJECT::DeviceCalculateCRC32

; 115  : {

  00000		 |$L35654|
  00000	e92d43f0	 stmdb       sp!, {r4 - r9, lr}
  00004		 |$M35652|
  00004	e1a08003	 mov         r8, r3
  00008	e1a06002	 mov         r6, r2
  0000c	e1a09001	 mov         r9, r1

; 116  :     U32 	Crc, Carry;
; 117  :     int		i, j;
; 118  :     U8		CurByte;
; 119  : 
; 120  :     Crc = 0xffffffff;

  00010	e3e0e000	 mvn         lr, #0

; 121  : 
; 122  :     for (i = 0; i < nLength; i++) {

  00014	e3a00000	 mov         r0, #0
  00018	e3560000	 cmp         r6, #0
  0001c	da000011	 ble         |$L35316|
  00020	e59f7070	 ldr         r7, [pc, #0x70]
  00024		 |$L35314|

; 123  : 
; 124  :         CurByte = ptrBuffer[i];

  00024	e7d02009	 ldrb        r2, [r0, +r9]
  00028	e3a05008	 mov         r5, #8
  0002c		 |$L35317|

; 125  : 
; 126  :         for (j = 0; j < 8; j++) {
; 127  : 
; 128  :             Carry = ((Crc & 0x80000000) ? 1 : 0) ^ (CurByte & 0x01);

  0002c	e31e0102	 tst         lr, #2, 2
  00030	13a04001	 movne       r4, #1
  00034	03a04000	 moveq       r4, #0
  00038	e2023001	 and         r3, r2, #1

; 129  : 
; 130  :             Crc <<= 1;
; 131  : 
; 132  :             CurByte >>= 1;

  0003c	e0331004	 eors        r1, r3, r4
  00040	e1a0e08e	 mov         lr, lr, lsl #1

; 133  : 
; 134  :             if (Carry) {
; 135  : 
; 136  :                 Crc = (Crc ^ 0x04c11db6) | Carry;

  00044	102e3007	 eorne       r3, lr, r7
  00048	e1a020a2	 mov         r2, r2, lsr #1
  0004c	1183e001	 orrne       lr, r3, r1
  00050	e2555001	 subs        r5, r5, #1
  00054	e20220ff	 and         r2, r2, #0xFF
  00058	1afffff3	 bne         |$L35317|
  0005c	e2800001	 add         r0, r0, #1
  00060	e1500006	 cmp         r0, r6
  00064	baffffee	 blt         |$L35314|
  00068		 |$L35316|

; 137  : 
; 138  :             }
; 139  : 
; 140  :         }
; 141  : 
; 142  :     }
; 143  : 
; 144  :     for (i=0, Carry=0x0L; i < 32 ; i++) {

  00068	e3a00000	 mov         r0, #0
  0006c	e3a03020	 mov         r3, #0x20
  00070		 |$L35321|

; 145  :        Carry <<= 1;

  00070	e1a00080	 mov         r0, r0, lsl #1

; 146  :        if (Crc & 0x1) {

  00074	e31e0001	 tst         lr, #1

; 147  :           Carry |= 0x1L;

  00078	13800001	 orrne       r0, r0, #1

; 148  :        }
; 149  :        Crc >>= 1;

  0007c	e2533001	 subs        r3, r3, #1
  00080	e1a0e0ae	 mov         lr, lr, lsr #1
  00084	1afffff9	 bne         |$L35321|

; 150  :     }
; 151  : 
; 152  :     return bReverse?~Carry:Carry;

  00088	e3580000	 cmp         r8, #0
  0008c	11e00000	 mvnne       r0, r0

; 153  : 
; 154  : }

  00090	e8bd43f0	 ldmia       sp!, {r4 - r9, lr}
  00094	e12fff1e	 bx          lr
  00098		 |$L35657|
  00098	04c11db6	 DCD         0x4c11db6
  0009c		 |$M35653|

			 ENDP  ; |?DeviceCalculateCRC32@NIC_DEVICE_OBJECT@@QAAKPAEHH@Z|, NIC_DEVICE_OBJECT::DeviceCalculateCRC32

	EXPORT	|?DeviceMacAddress@NIC_DEVICE_OBJECT@@UAAPAEPAE@Z| ; NIC_DEVICE_OBJECT::DeviceMacAddress

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

  00000			 AREA	 |.pdata$$?DeviceMacAddress@NIC_DEVICE_OBJECT@@UAAPAEPAE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?DeviceMacAddress@NIC_DEVICE_OBJECT@@UAAPAEPAE@Z| } ; comdat associative
|$T35668| DCD	|$L35667|
	DCD	0x40000f00
; Function compile flags: /Ogsy

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

  00000		 |?DeviceMacAddress@NIC_DEVICE_OBJECT@@UAAPAEPAE@Z| PROC ; NIC_DEVICE_OBJECT::DeviceMacAddress

; 163  : {

  00000		 |$L35667|
  00000		 |$M35665|
  00000	e3510000	 cmp         r1, #0

; 164  : 	if(!ptrBuffer) return ptrBuffer;

  00004	03a01000	 moveq       r1, #0
  00008	01a00001	 moveq       r0, r1

; 172  : }

  0000c	012fff1e	 bxeq        lr

; 165  : 
; 166  : 	PU16	pcurr=(PU16)&m_szEeprom[
; 167  : 		m_szEepromFormat[EID_MAC_ADDRESS]];

  00010	e59030bc	 ldr         r3, [r0, #0xBC]

; 168  : 	*(PU16)ptrBuffer = *pcurr++;
; 169  : 	*(PU16)(ptrBuffer+2) = *pcurr++;
; 170  : 	*(PU16)(ptrBuffer+4) = *pcurr++;
; 171  : 	return ptrBuffer;

  00014	e0833000	 add         r3, r3, r0
  00018	e2832b01	 add         r2, r3, #1, 22
  0001c	e1f233b8	 ldrh        r3, [r2, #0x38]!
  00020	e1c130b0	 strh        r3, [r1]
  00024	e1f230b2	 ldrh        r3, [r2, #2]!
  00028	e1c130b2	 strh        r3, [r1, #2]
  0002c	e1d230b2	 ldrh        r3, [r2, #2]
  00030	e1c130b4	 strh        r3, [r1, #4]

; 164  : 	if(!ptrBuffer) return ptrBuffer;

  00034	e1a00001	 mov         r0, r1

; 172  : }

  00038	e12fff1e	 bx          lr
  0003c		 |$M35666|

			 ENDP  ; |?DeviceMacAddress@NIC_DEVICE_OBJECT@@UAAPAEPAE@Z|, NIC_DEVICE_OBJECT::DeviceMacAddress

	EXPORT	|?DeviceVendorID@NIC_DEVICE_OBJECT@@UAAGXZ| ; NIC_DEVICE_OBJECT::DeviceVendorID

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

  00000			 AREA	 |.pdata$$?DeviceVendorID@NIC_DEVICE_OBJECT@@UAAGXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?DeviceVendorID@NIC_DEVICE_OBJECT@@UAAGXZ| } ; comdat associative
|$T35678| DCD	|$L35677|
	DCD	0x40000500
; Function compile flags: /Ogsy

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

  00000		 |?DeviceVendorID@NIC_DEVICE_OBJECT@@UAAGXZ| PROC ; NIC_DEVICE_OBJECT::DeviceVendorID

; 175  : {

  00000		 |$L35677|
  00000		 |$M35675|

; 176  : 	return *(PU16)(&m_szEeprom[m_szEepromFormat[EID_VENDOR_ID]]);

  00000	e59030c0	 ldr         r3, [r0, #0xC0]
  00004	e0833000	 add         r3, r3, r0
  00008	e2833b01	 add         r3, r3, #1, 22
  0000c	e1d303b8	 ldrh        r0, [r3, #0x38]

; 177  : }

  00010	e12fff1e	 bx          lr
  00014		 |$M35676|

			 ENDP  ; |?DeviceVendorID@NIC_DEVICE_OBJECT@@UAAGXZ|, NIC_DEVICE_OBJECT::DeviceVendorID

	EXPORT	|?DeviceProductID@NIC_DEVICE_OBJECT@@UAAGXZ| ; NIC_DEVICE_OBJECT::DeviceProductID

⌨️ 快捷键说明

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