📄 halether.cod
字号:
; 373 : }
; 374 :
; 375 : //
; 376 : // Handle new multicast list..
; 377 : //
; 378 :
; 379 : if (bNewMulticast && pfnMulticastList)
; 380 : {
; 381 : bNewMulticast = FALSE;
; 382 : pfnMulticastList(
; 383 : (PUCHAR)ucMultiAddr,
; 384 : dwNoOfEntry);
; 385 : }
; 386 : #endif
; 387 :
; 388 : ////////////////////////////////////////////////////////////////////////////
; 389 : // Consume all the client packets.
; 390 : //
; 391 : while (VBridgeKGetOneTxBuffer(&pVMiniData, &dwVMiniDataLength) == TRUE)
00008 e28d1004 add r1, sp, #4
0000c e28d0000 add r0, sp, #0
00010 eb000000 bl VBridgeKGetOneTxBuffer
00014 e3500001 cmp r0, #1
00018 1a00000c bne |$L15599|
0001c e59f4038 ldr r4, [pc, #0x38]
00020 |$L15598|
; 392 : {
; 393 : pfnEDbgSendFrame (pVMiniData, dwVMiniDataLength);
00020 e59d1004 ldr r1, [sp, #4]
00024 e59d0000 ldr r0, [sp]
00028 e5943000 ldr r3, [r4]
0002c e1a0e00f mov lr, pc
00030 e12fff13 bx r3
; 394 : VBridgeKGetOneTxBufferComplete(pVMiniData);
00034 e59d0000 ldr r0, [sp]
00038 eb000000 bl VBridgeKGetOneTxBufferComplete
0003c e28d1004 add r1, sp, #4
00040 e28d0000 add r0, sp, #0
00044 eb000000 bl VBridgeKGetOneTxBuffer
00048 e3500001 cmp r0, #1
0004c 0afffff3 beq |$L15598|
00050 |$L15599|
; 395 : }
; 396 :
; 397 : } // ProcessVMiniSend()
00050 e28dd008 add sp, sp, #8
00054 e8bd4010 ldmia sp!, {r4, lr}
00058 e12fff1e bx lr
0005c |$L15825|
0005c 00000000 DCD |pfnEDbgSendFrame|
00060 |$M15821|
ENDP ; |ProcessVMiniSend|
EXPORT |OEMEthISR|
EXPORT |??_C@_01MMEEDKFM@X?$AA@| [ DATA ] ; `string'
00000 AREA |.text| { |OEMEthISR| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMEthISR|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMEthISR| } ; comdat associative
|$T15834| DCD |$L15833|
DCD 0x40001101
00000 AREA |.rdata| { |??_C@_01MMEEDKFM@X?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_01MMEEDKFM@X?$AA@| DCB "X", 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMEthISR| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMEthISR| PROC
; 413 : {
00000 |$L15833|
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M15831|
; 414 : DWORD dwReturnValue = 0;
; 415 :
; 416 : EdbgOutputDebugString("X");
00004 e59f0034 ldr r0, [pc, #0x34]
00008 e3a04000 mov r4, #0
0000c eb000000 bl EdbgOutputDebugString
; 417 :
; 418 : #ifdef IMGSHAREETH
; 419 : ProcessVMiniSend();
00010 eb000000 bl ProcessVMiniSend
; 420 : #endif
; 421 : if(pfnEDbgGetPendingInts)
00014 e59f2020 ldr r2, [pc, #0x20]
00018 e5923000 ldr r3, [r2]
0001c e3530000 cmp r3, #0
00020 0a000002 beq |$L15603|
; 422 : {
; 423 : dwReturnValue = pfnEDbgGetPendingInts();
00024 e1a0e00f mov lr, pc
00028 e12fff13 bx r3
0002c e1a04000 mov r4, r0
00030 |$L15603|
; 424 : }
; 425 :
; 426 : return dwReturnValue;
00030 e1a00004 mov r0, r4
; 427 : }
00034 e8bd4010 ldmia sp!, {r4, lr}
00038 e12fff1e bx lr
0003c |$L15836|
0003c 00000000 DCD |pfnEDbgGetPendingInts|
00040 00000000 DCD |??_C@_01MMEEDKFM@X?$AA@|
00044 |$M15832|
ENDP ; |OEMEthISR|
EXPORT |OEMEthGetFrame|
IMPORT |VBridgeKIndicateOneRxBuffer|
00000 AREA |.text| { |OEMEthGetFrame| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMEthGetFrame|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMEthGetFrame| } ; comdat associative
|$T15852| DCD |$L15851|
DCD 0x40002902
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMEthGetFrame| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMEthGetFrame| PROC
; 444 : {
00000 |$L15851|
00000 e92d41f0 stmdb sp!, {r4 - r8, lr}
00004 e24dd004 sub sp, sp, #4
00008 |$M15849|
00008 e1a06001 mov r6, r1
0000c e1a07000 mov r7, r0
; 445 :
; 446 : #ifdef IMGSHAREETH
; 447 : BOOL bStatus;
; 448 : BOOL bTaken;
; 449 : UINT16 wOriginalLength;
; 450 :
; 451 :
; 452 : ProcessVMiniSend();
00010 eb000000 bl ProcessVMiniSend
; 453 :
; 454 : //
; 455 : // ne2000 ether library has a minor problem of returning incorrect
; 456 : // Ethernet packet size if we give it buffer > max Ether MTU.
; 457 : // So, pass in only ether MTU if the incoming buffer is greater
; 458 : // than ether MTU.
; 459 : //
; 460 :
; 461 : if (*pwLength >= 1514)
00014 e1d630b0 ldrh r3, [r6]
00018 e3a05e5e mov r5, #0x5E, 28
0001c e385500a orr r5, r5, #0xA
; 462 : wOriginalLength = 1514;
; 463 : else
; 464 : wOriginalLength = *pwLength;
; 465 :
; 466 : while (1)
; 467 : {
; 468 : *pwLength = wOriginalLength;
; 469 :
; 470 : bStatus = pfnEDbgGetFrame(pData, pwLength);
00020 e59f8078 ldr r8, [pc, #0x78]
00024 e1530005 cmp r3, r5
00028 31a05003 movcc r5, r3
0002c e1c650b0 strh r5, [r6]
00030 e5983000 ldr r3, [r8]
00034 e1a01006 mov r1, r6
00038 e1a00007 mov r0, r7
0003c e1a0e00f mov lr, pc
00040 e12fff13 bx r3
00044 ea00000d b |$L15848|
00048 |$L15615|
; 471 :
; 472 : if (bStatus)
; 473 : {
; 474 : VBridgeKIndicateOneRxBuffer(pData, *pwLength, FALSE, &bTaken);
00048 e1d610b0 ldrh r1, [r6]
0004c e28d3000 add r3, sp, #0
00050 e3a02000 mov r2, #0
00054 e1a00007 mov r0, r7
00058 eb000000 bl VBridgeKIndicateOneRxBuffer
; 475 : if (!bTaken)
0005c e59d3000 ldr r3, [sp]
00060 e3530000 cmp r3, #0
00064 0a000009 beq |$L15608|
00068 e1c650b0 strh r5, [r6]
0006c e5983000 ldr r3, [r8]
00070 e1a01006 mov r1, r6
00074 e1a00007 mov r0, r7
00078 e1a0e00f mov lr, pc
0007c e12fff13 bx r3
00080 |$L15848|
00080 e1a03800 mov r3, r0, lsl #16
00084 e1b04823 movs r4, r3, lsr #16
00088 1affffee bne |$L15615|
; 477 : }
; 478 : else
; 479 : break;
; 480 : }
; 481 :
; 482 : return (FALSE);
0008c e3a04000 mov r4, #0
00090 |$L15608|
; 476 : return bStatus;
00090 e1a00004 mov r0, r4
; 483 : #else
; 484 :
; 485 : return (pfnEDbgGetFrame(pData, pwLength));
; 486 :
; 487 : #endif
; 488 :
; 489 : }
00094 e28dd004 add sp, sp, #4
00098 e8bd41f0 ldmia sp!, {r4 - r8, lr}
0009c e12fff1e bx lr
000a0 |$L15854|
000a0 00000000 DCD |pfnEDbgGetFrame|
000a4 |$M15850|
ENDP ; |OEMEthGetFrame|
EXPORT |OEMEthSendFrame|
EXPORT |??_C@_0CE@HCNNFPGI@?$CBOEMEthSendFrame?5failure?0?5retry?5@| [ DATA ] ; `string'
00000 AREA |.text| { |OEMEthSendFrame| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMEthSendFrame|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMEthSendFrame| } ; comdat associative
|$T15868| DCD |$L15867|
DCD 0x40001c01
00000 AREA |.rdata| { |??_C@_0CE@HCNNFPGI@?$CBOEMEthSendFrame?5failure?0?5retry?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CE@HCNNFPGI@?$CBOEMEthSendFrame?5failure?0?5retry?5@| DCB "!OEMEt"
DCB "hSendFrame failure, retry %u", 0xa, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMEthSendFrame| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMEthSendFrame| PROC
; 502 : {
00000 |$L15867|
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 |$M15865|
00004 e1a05001 mov r5, r1
00008 e1a06000 mov r6, r0
; 503 : int retries = 0;
0000c e59f7058 ldr r7, [pc, #0x58]
00010 e3a04000 mov r4, #0
00014 |$L15627|
; 504 : while ( retries++ < 4 ) {
; 505 : if ( !pfnEDbgSendFrame(pData, dwLength) )
00014 e5973000 ldr r3, [r7]
00018 e1a01005 mov r1, r5
0001c e1a00006 mov r0, r6
00020 e2844001 add r4, r4, #1
00024 e1a0e00f mov lr, pc
00028 e12fff13 bx r3
0002c e1a03800 mov r3, r0, lsl #16
00030 e1b03823 movs r3, r3, lsr #16
00034 0a000007 beq |$L15858|
; 512 : }
; 513 : else
; 514 : EdbgOutputDebugString("!OEMEthSendFrame failure, retry %u\n",retries);
00038 e59f0028 ldr r0, [pc, #0x28]
0003c e1a01004 mov r1, r4
00040 eb000000 bl EdbgOutputDebugString
00044 e3540004 cmp r4, #4
00048 bafffff1 blt |$L15627|
; 515 : }
; 516 : return (FALSE);
0004c e3a00000 mov r0, #0
; 517 : }
00050 e8bd40f0 ldmia sp!, {r4 - r7, lr}
00054 e12fff1e bx lr
00058 |$L15858|
; 506 : {
; 507 :
; 508 : #ifdef IMGSHAREETH
; 509 : ProcessVMiniSend();
00058 eb000000 bl ProcessVMiniSend
; 510 : #endif
; 511 : return (TRUE);
0005c e3a00001 mov r0, #1
; 517 : }
00060 e8bd40f0 ldmia sp!, {r4 - r7, lr}
00064 e12fff1e bx lr
00068 |$L15870|
00068 00000000 DCD |??_C@_0CE@HCNNFPGI@?$CBOEMEthSendFrame?5failure?0?5retry?5@|
0006c 00000000 DCD |pfnEDbgSendFrame|
00070 |$M15866|
ENDP ; |OEMEthSendFrame|
EXPORT |OEMEthQueryClientInfo|
EXPORT |??_C@_0BI@OFFGIMI@OEMEthQueryClientInfo?$AN?6?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0BC@FADONGHL@EDBG_SVC_DBGMSG?$AN?6?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0BI@FLGOJLAM@pPeerAddr?5IP?3?5?5?5?5?5?5?$CFs?$AN?6?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0BI@NFHFGFIB@pPeerAddr?5wMAC?$FL0?$FN?3?5?$CFx?$AN?6?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0BI@MCAOHBMC@pPeerAddr?5wMAC?$FL1?$FN?3?5?$CFx?$AN?6?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0BI@PLIDENAH@pPeerAddr?5wMAC?$FL2?$FN?3?5?$CFx?$AN?6?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0BI@OBDJKKBN@pPeerAddr?5wPort?3?5?5?5?$CFx?$AN?6?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0BI@BDAHAKAJ@ppBufferPool?3?5?5?5?5?5?5?$CFx?$AN?6?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0BA@OLBCCMFI@EDBG_SVC_PPSH?$AN?6?$AA@| [ DATA ] ; `string'
EXPORT |??_C@_0BA@BDGPAKIF@EDBG_SVC_KDBG?$AN?6?$AA@| [ DATA ] ; `string'
IMPORT |inet_ntoa|
00000 AREA |.text| { |OEMEthQueryClientInfo| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMEthQueryClientInfo|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMEthQueryClientInfo| } ; comdat associative
|$T15884| DCD |$L15883|
DCD 0x40008901
00000 AREA |.rdata| { |??_C@_0BC@FADONGHL@EDBG_SVC_DBGMSG?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BC@FADONGHL@EDBG_SVC_DBGMSG?$AN?6?$AA@| DCB "EDBG_SVC_DBGMSG", 0xd
DCB 0xa, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0BA@OLBCCMFI@EDBG_SVC_PPSH?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0BA@OLBCCMFI@EDBG_SVC_PPSH?$AN?6?$AA@| DCB "EDBG_SVC_PPSH", 0xd, 0xa
DCB 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_0BI@FLGOJLAM@pPeerAddr?5IP?3?5?5?5?5?5?5?$CFs?$AN?6?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -