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

📄 halether.cod

📁 Ep93XX TionProV2 BSP
💻 COD
📖 第 1 页 / 共 5 页
字号:

; 624  :     }
; 625  :     dwLastTime = dwRet;

  0002c	e5854000	 str         r4, [r5]

; 626  :     return (dwRet);

  00030	e1a00004	 mov         r0, r4

; 627  : }

  00034	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  00038	e12fff1e	 bx          lr
  0003c		 |$L15897|
  0003c	00000000	 DCD         |??_C@_0DG@BEEKIGEB@?$CB?5Time?5went?5backwards?5?$CIor?5wrappe@|
  00040	00000000	 DCD         |dwLastTime|
  00044	10624dd3	 DCD         0x10624dd3
  00048		 |$M15893|

			 ENDP  ; |OEMEthGetSecs|

	EXPORT	|OEMEthCurrentPacketFilter|
	EXPORT	|??_C@_0CK@JNNEFBDF@OEMEthCurrentPacketFilter?5set?5to@| [ DATA ] ; `string'

  00000			 AREA	 |.text| { |OEMEthCurrentPacketFilter| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$OEMEthCurrentPacketFilter|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMEthCurrentPacketFilter| } ; comdat associative
|$T15907| DCD	|$L15906|
	DCD	0x40001c01

  00000			 AREA	 |.rdata| { |??_C@_0CK@JNNEFBDF@OEMEthCurrentPacketFilter?5set?5to@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CK@JNNEFBDF@OEMEthCurrentPacketFilter?5set?5to@| DCB "OEMEthCurre"
	DCB	"ntPacketFilter set to [0x%x]", 0xd, 0xa, 0x0 ; `string'
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |OEMEthCurrentPacketFilter| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |OEMEthCurrentPacketFilter| PROC

; 671  : {

  00000		 |$L15906|
  00000	e92d4010	 stmdb       sp!, {r4, lr}
  00004		 |$M15904|
  00004	e1a04000	 mov         r4, r0

; 672  : 
; 673  :     if (pfnCurrentPacketFilter)

  00008	e59f305c	 ldr         r3, [pc, #0x5C]
  0000c	e5933000	 ldr         r3, [r3]
  00010	e3530000	 cmp         r3, #0
  00014	0a00000b	 beq         |$L15703|

; 674  :     {
; 675  :         EdbgOutputDebugString(
; 676  :             "OEMEthCurrentPacketFilter set to [0x%x]\r\n",
; 677  :             *pdwRequestedFilter);   

  00018	e5941000	 ldr         r1, [r4]
  0001c	e59f0044	 ldr         r0, [pc, #0x44]
  00020	eb000000	 bl          EdbgOutputDebugString

; 678  : 
; 679  :         //
; 680  :         //  Note that we can't do it immediately here, since we are called 
; 681  :         //  by user mode code.
; 682  :         //  So what we do is to set the flag here for the kernel mode code
; 683  :         //  to pick up.
; 684  :         //
; 685  : 
; 686  :         dwFilter   = *pdwRequestedFilter;

  00024	e59f1038	 ldr         r1, [pc, #0x38]
  00028	e5943000	 ldr         r3, [r4]

; 687  :         bNewFilter = TRUE;

  0002c	e59f202c	 ldr         r2, [pc, #0x2C]
  00030	e3a00001	 mov         r0, #1
  00034	e5813000	 str         r3, [r1]
  00038	e5820000	 str         r0, [r2]
  0003c		 |$L15903|

; 688  :         return TRUE;

  0003c	e3a00001	 mov         r0, #1

; 708  :     }
; 709  : 
; 710  : }   //  OEMEthCurrentPacketFilter()

  00040	e8bd4010	 ldmia       sp!, {r4, lr}
  00044	e12fff1e	 bx          lr
  00048		 |$L15703|

; 689  :     }
; 690  :     else
; 691  :     {
; 692  :         //
; 693  :         //  Oh well, eth driver does not yet support filter setting
; 694  :         //  So if it is PACKET_TYPE_DIRECTED, PACKET_TYPE_MULTICAST, 
; 695  :         //  PACKET_TYPE_BROADCAST, we just lie that we are ok with it.
; 696  :         //  Since EDBG will run in this mode anyway..
; 697  :         //
; 698  : 
; 699  :         DWORD   dwInherentlySupported = 
; 700  :                     PACKET_TYPE_MULTICAST   | 
; 701  :                     PACKET_TYPE_DIRECTED    | 
; 702  :                     PACKET_TYPE_BROADCAST;
; 703  : 
; 704  :         if (*pdwRequestedFilter == dwInherentlySupported)

  00048	e5943000	 ldr         r3, [r4]
  0004c	e353000b	 cmp         r3, #0xB

; 705  :             return TRUE;

  00050	0afffff9	 beq         |$L15903|

; 706  :         else
; 707  :             return FALSE;

  00054	e3a00000	 mov         r0, #0

; 708  :     }
; 709  : 
; 710  : }   //  OEMEthCurrentPacketFilter()

  00058	e8bd4010	 ldmia       sp!, {r4, lr}
  0005c	e12fff1e	 bx          lr
  00060		 |$L15909|
  00060	00000000	 DCD         |bNewFilter|
  00064	00000000	 DCD         |dwFilter|
  00068	00000000	 DCD         |??_C@_0CK@JNNEFBDF@OEMEthCurrentPacketFilter?5set?5to@|
  0006c	00000000	 DCD         |pfnCurrentPacketFilter|
  00070		 |$M15905|

			 ENDP  ; |OEMEthCurrentPacketFilter|

	EXPORT	|OEMEthMulticastList|
	EXPORT	|??_C@_0CN@GINGNDC@OEMEthMulticastList?$CI?$CJ?3?3?5No?5of?5En@| [ DATA ] ; `string'
	EXPORT	|??_C@_0CI@OMAMJJIC@Multicast?5list?5requeste?5?$FL?$CFd?$FN?5?$DM?$DN?5@| [ DATA ] ; `string'
	EXPORT	|??_C@_0CI@LBFIFDNC@Multicast?5list?5requeste?5?$FL?$CFd?$FN?5?$DO?53@| [ DATA ] ; `string'
	EXPORT	|??_C@_0CF@FKEOHFMO@?$FL?$CFd?$FN?5?3?5?$CFx?5?9?5?$CFx?5?9?5?$CFx?5?9?5?$CFx?5?9?5?$CFx?5?9?5@| [ DATA ] ; `string'
	IMPORT	|CS8950MulticastAddAll|
	IMPORT	|memset|
	IMPORT	|memcpy|

  00000			 AREA	 |.text| { |OEMEthMulticastList| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$OEMEthMulticastList|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMEthMulticastList| } ; comdat associative
|$T15925| DCD	|$L15924|
	DCD	0x40003d02

  00000			 AREA	 |.rdata| { |??_C@_0CF@FKEOHFMO@?$FL?$CFd?$FN?5?3?5?$CFx?5?9?5?$CFx?5?9?5?$CFx?5?9?5?$CFx?5?9?5?$CFx?5?9?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CF@FKEOHFMO@?$FL?$CFd?$FN?5?3?5?$CFx?5?9?5?$CFx?5?9?5?$CFx?5?9?5?$CFx?5?9?5?$CFx?5?9?5@| DCB "["
	DCB	"%d] : %x - %x - %x - %x - %x - %x", 0xd, 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0CI@LBFIFDNC@Multicast?5list?5requeste?5?$FL?$CFd?$FN?5?$DO?53@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CI@LBFIFDNC@Multicast?5list?5requeste?5?$FL?$CFd?$FN?5?$DO?53@| DCB "M"
	DCB	"ulticast list requeste [%d] > 32 !!!", 0xd, 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0CI@OMAMJJIC@Multicast?5list?5requeste?5?$FL?$CFd?$FN?5?$DM?$DN?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CI@OMAMJJIC@Multicast?5list?5requeste?5?$FL?$CFd?$FN?5?$DM?$DN?5@| DCB "M"
	DCB	"ulticast list requeste [%d] <= 0 !!!", 0xd, 0xa, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_C@_0CN@GINGNDC@OEMEthMulticastList?$CI?$CJ?3?3?5No?5of?5En@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_0CN@GINGNDC@OEMEthMulticastList?$CI?$CJ?3?3?5No?5of?5En@| DCB "OEM"
	DCB	"EthMulticastList():: No of Entries [%d]", 0xd, 0xa, 0x0 ; `string'
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |OEMEthMulticastList| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |OEMEthMulticastList| PROC

; 736  : {

  00000		 |$L15924|
  00000	e92d43f0	 stmdb       sp!, {r4 - r9, lr}
  00004	e24dd010	 sub         sp, sp, #0x10
  00008		 |$M15922|
  00008	e1a07001	 mov         r7, r1
  0000c	e1a08000	 mov         r8, r0

; 737  :     //
; 738  :     //  This platform does not support multicast yet..
; 739  :     //
; 740  : 
; 741  :     DWORD   i;
; 742  : 
; 743  :     EdbgOutputDebugString(
; 744  :         "OEMEthMulticastList():: No of Entries [%d]\r\n",
; 745  :             dwNoOfAddresses);   

  00010	e59f00d8	 ldr         r0, [pc, #0xD8]
  00014	eb000000	 bl          EdbgOutputDebugString

; 746  : 
; 747  :     if (dwNoOfAddresses <= 0)

  00018	e3570000	 cmp         r7, #0

; 748  :     {
; 749  :         //
; 750  :         // VMINI passed an empty multicast list.
; 751  : 		// Should be never happened.
; 752  :         // Return FALSE in case it happened.
; 753  :         
; 754  :         EdbgOutputDebugString(
; 755  :             "Multicast list requeste [%d] <= 0 !!!\r\n",
; 756  :             dwNoOfAddresses);

  0001c	059f00c8	 ldreq       r0, [pc, #0xC8]
  00020	0a000002	 beq         |$L15921|

; 757  : 
; 758  :         return FALSE;
; 759  : 
; 760  : 	}
; 761  : 
; 762  :     //
; 763  :     //  We can check how many entries an adapter that are attached to 
; 764  :     //  can support.
; 765  :     //  To make things simple, we just assume we can support minimum that
; 766  :     //  vmini thinks we support (i.e. 32).
; 767  :     //
; 768  : 
; 769  :     if (dwNoOfAddresses > 32)

  00024	e3570020	 cmp         r7, #0x20
  00028	9a000004	 bls         |$L15719|

; 770  :     {
; 771  :         //
; 772  :         //  This should never happen, since VMINI is known to support
; 773  :         //  32 entries only... 
; 774  :         //
; 775  :         
; 776  :         EdbgOutputDebugString(
; 777  :             "Multicast list requeste [%d] > 32 !!!\r\n",
; 778  :             dwNoOfAddresses);

  0002c	e59f00b4	 ldr         r0, [pc, #0xB4]
  00030		 |$L15921|
  00030	e1a01007	 mov         r1, r7
  00034	eb000000	 bl          EdbgOutputDebugString

; 779  : 
; 780  :         return FALSE;

  00038	e3a00000	 mov         r0, #0
  0003c	ea000022	 b           |$L15714|
  00040		 |$L15719|

; 781  :     }
; 782  : 
; 783  : 
; 784  :     //
; 785  :     //   32 entries, 6 bytes each..
; 786  :     //
; 787  : 
; 788  :     memset(
; 789  :         ucMultiAddr,
; 790  :         0x00,
; 791  :         32 * 6);     

  00040	e59f009c	 ldr         r0, [pc, #0x9C]
  00044	e3a020c0	 mov         r2, #0xC0
  00048	e3a01000	 mov         r1, #0
  0004c	eb000000	 bl          memset

; 792  : 
; 793  :     //
; 794  :     //  6 bytes per entry..
; 795  :     //
; 796  : 
; 797  :     memcpy(
; 798  :         ucMultiAddr,
; 799  :         pucMulticastAddressList,
; 800  :         dwNoOfAddresses * 6);

  00050	e59f008c	 ldr         r0, [pc, #0x8C]
  00054	e0872087	 add         r2, r7, r7, lsl #1
  00058	e1a02082	 mov         r2, r2, lsl #1
  0005c	e1a01008	 mov         r1, r8
  00060	eb000000	 bl          memcpy

; 801  : 
; 802  : 
; 803  :     for (i = 0 ; i < dwNoOfAddresses ; i++)

  00064	e3a09000	 mov         r9, #0
  00068	e3570000	 cmp         r7, #0
  0006c	0a00000f	 beq         |$L15723|
  00070		 |$L15721|

; 804  :     {
; 805  :         EdbgOutputDebugString(
; 806  :             "[%d] : %x - %x - %x - %x - %x - %x\r\n",
; 807  :             i,
; 808  :             pucMulticastAddressList[6*i+0],
; 809  :             pucMulticastAddressList[6*i+1],
; 810  :             pucMulticastAddressList[6*i+2],
; 811  :             pucMulticastAddressList[6*i+3],
; 812  :             pucMulticastAddressList[6*i+4],
; 813  :             pucMulticastAddressList[6*i+5]);

  00070	e5d8e005	 ldrb        lr, [r8, #5]
  00074	e5d84004	 ldrb        r4, [r8, #4]
  00078	e5d85003	 ldrb        r5, [r8, #3]
  0007c	e5d86002	 ldrb        r6, [r8, #2]
  00080	e5d83001	 ldrb        r3, [r8, #1]
  00084	e4d82006	 ldrb        r2, [r8], #6
  00088	e59f0050	 ldr         r0, [pc, #0x50]
  0008c	e1a01009	 mov         r1, r9
  00090	e58de00c	 str         lr, [sp, #0xC]
  00094	e58d4008	 str         r4, [sp, #8]
  00098	e58d5004	 str         r5, [sp, #4]
  0009c	e58d6000	 str         r6, [sp]
  000a0	eb000000	 bl          EdbgOutputDebugString
  000a4	e2899001	 add         r9, r9, #1
  000a8	e1590007	 cmp         r9, r7
  000ac	3affffef	 bcc         |$L15721|
  000b0		 |$L15723|

; 814  :     }
; 815  :         
; 816  : 
; 817  :     dwNoOfEntry   = dwNoOfAddresses;

  000b0	e59f3024	 ldr         r3, [pc, #0x24]

; 818  :     bNewMulticast = TRUE;       

  000b4	e59f201c	 ldr         r2, [pc, #0x1C]
  000b8	e3a01001	 mov         r1, #1
  000bc	e5837000	 str         r7, [r3]
  000c0	e5821000	 str         r1, [r2]

; 819  : 
; 820  :     //Enable all of multicast addresses on the chip.
; 821  : 	//then Ethernet will receive all of the multicast packets.
; 822  :     CS8950MulticastAddAll();

  000c4	eb000000	 bl          CS8950MulticastAddAll

; 823  : 	
; 824  : 
; 825  :     return TRUE;

  000c8	e3a00001	 mov         r0, #1
  000cc		 |$L15714|

; 826  :     
; 827  : 
; 828  : }   //  OEMEthMulticastList()

  000cc	e28dd010	 add         sp, sp, #0x10
  000d0	e8bd43f0	 ldmia       sp!, {r4 - r9, lr}
  000d4	e12fff1e	 bx          lr
  000d8		 |$L15927|
  000d8	00000000	 DCD         |bNewMulticast|
  000dc	00000000	 DCD         |dwNoOfEntry|
  000e0	00000000	 DCD         |??_C@_0CF@FKEOHFMO@?$FL?$CFd?$FN?5?3?5?$CFx?5?9?5?$CFx?5?9?5?$CFx?5?9?5?$CFx?5?9?5?$CFx?5?9?5@|
  000e4	00000000	 DCD         |ucMultiAddr|
  000e8	00000000	 DCD         |??_C@_0CI@LBFIFDNC@Multicast?5list?5requeste?5?$FL?$CFd?$FN?5?$DO?53@|
  000ec	00000000	 DCD         |??_C@_0CI@OMAMJJIC@Multicast?5list?5requeste?5?$FL?$CFd?$FN?5?$DM?$DN?5@|
  000f0	00000000	 DCD         |??_C@_0CN@GINGNDC@OEMEthMulticastList?$CI?$CJ?3?3?5No?5of?5En@|
  000f4		 |$M15923|

			 ENDP  ; |OEMEthMulticastList|

	END

⌨️ 快捷键说明

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