📄 halether.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4237
TTL C:\WINCE500\PLATFORM\Ep93xx\Src\Kernel\Hal\Common\.\halether.c
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
EXPORT |bNewFilter| [ DATA ]
EXPORT |bNewMulticast| [ DATA ]
00000 AREA |.data|, DATA
COMMON |pfnEDbgInit|, 0x4
COMMON |pfnEDbgEnableInts|, 0x4
COMMON |pfnEDbgDisableInts|, 0x4
COMMON |pfnEDbgGetPendingInts|, 0x4
COMMON |pfnEDbgGetFrame|, 0x4
COMMON |pfnEDbgSendFrame|, 0x4
COMMON |pfnEDbgReadEEPROM|, 0x4
COMMON |pfnEDbgWriteEEPROM|, 0x4
COMMON |pfnEDbgSetOptions|, 0x4
COMMON |pfnCurrentPacketFilter|, 0x4
COMMON |pfnMulticastList|, 0x4
COMMON |RcvBuf|, 0x5dc
COMMON |wLocalMAC|, 0x6
00000 AREA |.bss|, NOINIT
|bNewFilter| % 0x4
00000 AREA |.data|, DATA
COMMON |dwFilter|, 0x4
00004 AREA |.bss|, NOINIT
|bNewMulticast| % 0x4
00000 AREA |.data|, DATA
COMMON |dwNoOfEntry|, 0x4
COMMON |ucMultiAddr|, 0xc0
00000 AREA |.rdata|, DATA, READONLY
|EdbgVendorIds| DCW 0x0
DCW 0x0
DCD 0x4033
DCB 0x1
DCB 0x0
DCB "AD", 0x0
% 3
DCW 0x1050
DCW 0x940
DCD 0x4005
DCB 0x1
DCB 0x0
DCB "LS", 0x0
% 3
DCW 0x1050
DCW 0x940
DCD 0x2078
DCB 0x1
DCB 0x0
DCB "LS", 0x0
% 3
DCW 0x10ec
DCW 0x8029
DCD 0xc0f0
DCB 0x1
DCB 0x0
DCB "KS", 0x0
% 3
DCW 0x10ec
DCW 0x8129
DCD 0x0
DCB 0x4
DCB 0x0
DCB "RT", 0x0
% 3
DCW 0x10ec
DCW 0x8139
DCD 0x900b
DCB 0x4
DCB 0x0
DCB "RT", 0x0
% 3
DCW 0x10ec
DCW 0x8139
DCD 0xd0c9
DCB 0x4
DCB 0x0
DCB "RT", 0x0
% 3
DCW 0x10ec
DCW 0x8139
DCD 0xe04c
DCB 0x4
DCB 0x0
DCB "RT", 0x0
% 3
DCW 0x1186
DCW 0x1300
DCD 0x50ba
DCB 0x4
DCB 0x0
DCB "DL", 0x0
% 3
DCW 0x100b
DCW 0x20
DCD 0xa0cc
DCB 0x5
DCB 0x0
DCB "NG", 0x0
% 3
DCW 0x10b7
DCW 0x9050
DCD 0x6008
DCB 0x6
DCB 0x0
DCB "3C", 0x0
% 3
DCW 0x10b7
DCW 0x9200
DCD 0x476
DCB 0x6
DCB 0x0
DCB "3C", 0x0
% 3
DCW 0x8086
DCW 0x1039
DCD 0x4033
DCB 0x7
DCB 0x1
DCB "IN", 0x0
% 3
DCW 0x8086
DCW 0x103a
DCD 0x4033
DCB 0x7
DCB 0x1
DCB "IN", 0x0
% 3
DCW 0x8086
DCW 0x1051
DCD 0x4033
DCB 0x7
DCB 0x1
DCB "IN", 0x0
% 3
DCW 0x8086
DCW 0x1229
DCD 0x4033
DCB 0x7
DCB 0x1
DCB "IN", 0x0
% 3
DCW 0x8086
DCW 0x2449
DCD 0x4033
DCB 0x7
DCB 0x1
DCB "IN", 0x0
% 3
EXPORT |??_C@_0DB@BDHKKPD@ERROR?3?5Failed?5to?5Initialize?5CS89@| [ DATA ] ; `string'
EXPORT |??_C@_0CP@NBFCGBLJ@INFO?3?5EDBG?5using?5Internal?5EP931x@| [ DATA ] ; `string'
EXPORT |OEMEthInit|
EXPORT |??_C@_0DF@EEJMMMNB@Unsupported?5debug?5Ethernet?5param@| [ DATA ] ; `string'
EXPORT |??_C@_0FJ@KCKIBPLK@Invalid?5Ethernet?5address?5read?5fr@| [ DATA ] ; `string'
EXPORT |??_C@_0EB@OCIBNHJ@Debug?5Ethernet?5card?5initialized?0@| [ DATA ] ; `string'
IMPORT |VBridgeInit|
IMPORT |VBridgeKSetLocalMacAddress|
IMPORT |CS8950Init|
IMPORT |CS8950EnableInts|
IMPORT |CS8950DisableInts|
IMPORT |CS8950GetPendingInterrupts|
IMPORT |CS8950GetFrame|
IMPORT |CS8950SendFrame|
IMPORT |CS8950ReadEEPROM|
IMPORT |CS8950WriteEEPROM|
IMPORT |CS8950DMAInit|
IMPORT |gulCS8950KitlUsed|
IMPORT |EdbgOutputDebugString|
; File c:\wince500\platform\ep93xx\src\kernel\hal\common\halether.c
00000 AREA |.text| { |OEMEthInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMEthInit|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMEthInit| } ; comdat associative
|$T15797| DCD |$L15796|
DCD 0x4000a302
00000 AREA |.rdata| { |??_C@_0EB@OCIBNHJ@Debug?5Ethernet?5card?5initialized?0@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0EB@OCIBNHJ@Debug?5Ethernet?5card?5initialized?0@| DCB "Debug Ethe"
DCB "rnet card initialized, MAC Address:%B:%B:%B:%B:%B:%B", 0xd
DCB 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0FJ@KCKIBPLK@Invalid?5Ethernet?5address?5read?5fr@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0FJ@KCKIBPLK@Invalid?5Ethernet?5address?5read?5fr@| DCB "Invalid E"
DCB "thernet address read from the debug ethernet controller,"
DCB " check switch settings", 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0CP@NBFCGBLJ@INFO?3?5EDBG?5using?5Internal?5EP931x@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CP@NBFCGBLJ@INFO?3?5EDBG?5using?5Internal?5EP931x@| DCB "INFO: ED"
DCB "BG using Internal EP931x controller.", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0DB@BDHKKPD@ERROR?3?5Failed?5to?5Initialize?5CS89@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DB@BDHKKPD@ERROR?3?5Failed?5to?5Initialize?5CS89@| DCB "ERROR: Fa"
DCB "iled to Initialize CS8950 DMA buffer.", 0xd, 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0DF@EEJMMMNB@Unsupported?5debug?5Ethernet?5param@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0DF@EEJMMMNB@Unsupported?5debug?5Ethernet?5param@| DCB "Unsupporte"
DCB "d debug Ethernet parameters - adapter: %u", 0xa, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMEthInit| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMEthInit| PROC
; 143 : {
00000 |$L15796|
00000 e92d4ff0 stmdb sp!, {r4 - r11, lr}
00004 e24dd010 sub sp, sp, #0x10
00008 |$M15794|
00008 e58d000c str r0, [sp, #0xC]
; 144 : PULONG pulEthernetBase;
; 145 : BOOL bTemp;
; 146 :
; 147 : DEBUGMSG(1, (TEXT("+OEMEthInit\r\n")));
; 148 :
; 149 : //
; 150 : // Store info from bootargs in the adapter object.
; 151 : //
; 152 : pAdapter->Addr.dwIP = pDriverGlobals->eth.EdbgAddr.dwIP;
0000c e59f3274 ldr r3, [pc, #0x274]
; 153 : //pAdapter->Addr = pDriverGlobals->eth.EdbgAddr;
; 154 : pAdapter->DHCPLeaseTime = pDriverGlobals->eth.DHCPLeaseTime;
00010 e59f226c ldr r2, [pc, #0x26C]
; 155 : pAdapter->EdbgFlags = pDriverGlobals->eth.EdbgFlags;
00014 e59f1264 ldr r1, [pc, #0x264]
00018 e5933000 ldr r3, [r3]
; 156 : //uiActiveNicNumber = pDriverGlobals->eth.EdbgHardwareType;
; 157 :
; 158 : //
; 159 : // Some parameters included in boot args for future use, make sure these aren't set
; 160 : //
; 161 : switch(pDriverGlobals->eth.EdbgHardwareType)
0001c e59fe258 ldr lr, [pc, #0x258]
00020 e5803000 str r3, [r0]
00024 e5923000 ldr r3, [r2]
00028 e5803010 str r3, [r0, #0x10]
0002c e5913000 ldr r3, [r1]
00030 e5803014 str r3, [r0, #0x14]
00034 e59e1000 ldr r1, [lr]
00038 e3510012 cmp r1, #0x12
0003c 0a000003 beq |$L15566|
; 254 : break;
; 255 : default:
; 256 :
; 257 : EdbgOutputDebugString
; 258 : (
; 259 : "Unsupported debug Ethernet parameters - adapter: %u\n",
; 260 : pDriverGlobals->eth.EdbgHardwareType
; 261 : );
00040 e59f0230 ldr r0, [pc, #0x230]
00044 eb000000 bl EdbgOutputDebugString
; 283 : return (FALSE);
00048 e3a00000 mov r0, #0
0004c ea00006a b |$L15554|
00050 |$L15566|
; 162 : {
; 163 : #if 0
; 164 : case EDBG_ADAPTER_SMC9000:
; 165 : pfnEDbgInit = SMCInit;
; 166 : pfnEDbgEnableInts = SMCEnableInts;
; 167 : pfnEDbgDisableInts = SMCDisableInts;
; 168 : pfnEDbgGetPendingInts = SMCGetPendingInterrupts;
; 169 : pfnEDbgGetFrame = SMCGetFrame;
; 170 : pfnEDbgSendFrame = SMCSendFrame;
; 171 : pfnEDbgReadEEPROM = SMCReadEEPROM;
; 172 : pfnEDbgWriteEEPROM = SMCWriteEEPROM;
; 173 : pfnEDbgSetOptions = SMCSetOptions;
; 174 : pfnCurrentPacketFilter= NULL;
; 175 : pfnMulticastList = NULL;
; 176 : pulEthernetBase = (ULONG *)0x12345678;
; 177 :
; 178 : EdbgOutputDebugString("INFO: EDBG using SMC9000 controller.\r\n");
; 179 : break;
; 180 : #endif // 0
; 181 :
; 182 : //
; 183 : // Ethernet base needs to be passed in from eboot.
; 184 : // TODO
; 185 : //
; 186 : #ifdef EP93XX_PCCARD
; 187 : case EDBG_ADAPTER_NE2000:
; 188 : pfnEDbgInit = NE2000Init;
; 189 : pfnEDbgEnableInts = NE2000EnableInts;
; 190 : pfnEDbgDisableInts = NE2000DisableInts;
; 191 : pfnEDbgGetPendingInts = NE2000GetPendingInts;
; 192 : pfnEDbgGetFrame = NE2000GetFrame;
; 193 : pfnEDbgSendFrame = NE2000SendFrame;
; 194 : pfnEDbgReadEEPROM = NE2000ReadEEPROM;
; 195 : pfnEDbgWriteEEPROM = NE2000WriteEEPROM;
; 196 : pfnEDbgSetOptions = NE2000SetOptions;
; 197 : pfnCurrentPacketFilter= Ne2000CurrentPacketFilter;
; 198 : pfnMulticastList = NE2000MulticastList;
; 199 : pulEthernetBase = (ULONG *)(PCMCIACARD_IO + 0x320);
; 200 :
; 201 : //
; 202 : // TODO - Change the interrupt later.
; 203 : //
; 204 : pAdapter->SysIntrVal = KITL_SYSINTR_NOINTR;
; 205 : EdbgOutputDebugString("INFO: EDBG using NE2000 controller.\r\n");
; 206 : break;
; 207 : #endif
; 208 : //
; 209 : // Put in the CS8950 ethernet routines.
; 210 : //
; 211 : case EDBG_ADAPTER_CS8950:
; 212 : pfnEDbgInit = CS8950Init;
; 213 : pfnEDbgEnableInts = CS8950EnableInts;
; 214 : pfnEDbgDisableInts = CS8950DisableInts;
; 215 : pfnEDbgGetPendingInts = CS8950GetPendingInterrupts;
; 216 : pfnEDbgGetFrame = CS8950GetFrame;
; 217 : pfnEDbgSendFrame = CS8950SendFrame;
; 218 : pfnEDbgReadEEPROM = CS8950ReadEEPROM;
; 219 : pfnEDbgWriteEEPROM = CS8950WriteEEPROM;
; 220 : pfnEDbgSetOptions = NULL;
; 221 : pfnCurrentPacketFilter= NULL; //CS8950CurrentPacketFilter;
; 222 : pfnMulticastList = NULL; // CS8950MulticastList;
; 223 : pulEthernetBase = (ULONG *)ETHERNET_BASE;
; 224 : pAdapter->SysIntrVal = SYSINTR_ETHER;
; 225 : gulCS8950KitlUsed = TRUE;
00050 e59f921c ldr r9, [pc, #0x21C]
00054 e59fa1b8 ldr r10, [pc, #0x1B8]
00058 e59f4210 ldr r4, [pc, #0x210]
0005c e59f3208 ldr r3, [pc, #0x208]
00060 e58a9000 str r9, [r10]
00064 e59f91fc ldr r9, [pc, #0x1FC]
00068 e59fa1f4 ldr r10, [pc, #0x1F4]
0006c e59f21ec ldr r2, [pc, #0x1EC]
00070 e59f11e4 ldr r1, [pc, #0x1E4]
00074 e58a9000 str r9, [r10]
00078 e59f91d8 ldr r9, [pc, #0x1D8]
0007c e59fa1d0 ldr r10, [pc, #0x1D0]
00080 e5843000 str r3, [r4]
00084 e3a03000 mov r3, #0
00088 e58a9000 str r9, [r10]
0008c e59f91bc ldr r9, [pc, #0x1BC]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -