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

📄 smsndis.cod

📁 这是mobile6.0下的DMB驱动
💻 COD
📖 第 1 页 / 共 5 页
字号:
; 681  : 	DBGMSG(ZONE_INFO, (TEXT("SmsNdis: -SmsNdis_SetInformationHandler. status 0x%X\r\n"),ndisStatus));
; 682  : 	return ndisStatus;

  00130	e1a00004	 mov         r0, r4

; 683  : }

  00134	e8bd47f0	 ldmia       sp!, {r4 - r10, lr}
  00138	e12fff1e	 bx          lr
  0013c		 |$L42377|
  0013c	c0010014	 DCD         0xc0010014
  00140	aaaaaaab	 DCD         0xaaaaaaab
  00144	c0010017	 DCD         0xc0010017
  00148	fd010103	 DCD         0xfd010103
  0014c	01010103	 DCD         0x1010103
  00150	00010119	 DCD         0x10119
  00154	00010112	 DCD         0x10112
  00158	0001010f	 DCD         0x1010f
  0015c	0001010e	 DCD         0x1010e
  00160		 |$M42373|

			 ENDP  ; |SmsNdis_SetInformationHandler|

	EXPORT	|SmsNdis_SendHandler|

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

  00000			 AREA	 |.pdata$$SmsNdis_SendHandler|, PDATA, SELECTION=5, ASSOC=|.text| { |SmsNdis_SendHandler| } ; comdat associative
|$T42385| DCD	|$L42384|
	DCD	0x40000200
; Function compile flags: /Ogsy

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

  00000		 |SmsNdis_SendHandler| PROC

; 697  : {

  00000		 |$L42384|
  00000		 |$M42382|

; 698  : 	//PSMS_SMS_NDIS_ST pSmsNdis = (PSMS_SMS_NDIS_ST)MiniportAdapterContext;
; 699  : 
; 700  : 	DBGMSG(ZONE_INFO, (TEXT("SmsNdis: +SmsNdis_SendHandler\r\n")));
; 701  : 
; 702  : 	DBGMSG(ZONE_INFO, (TEXT("SmsNdis: -SmsNdis_SendHandler\n")));
; 703  : 	return NDIS_STATUS_SUCCESS;

  00000	e3a00000	 mov         r0, #0

; 704  : }

  00004	e12fff1e	 bx          lr
  00008		 |$M42383|

			 ENDP  ; |SmsNdis_SendHandler|

	EXPORT	|MulticastEthAddrFromIpAddr|

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

  00000			 AREA	 |.pdata$$MulticastEthAddrFromIpAddr|, PDATA, SELECTION=5, ASSOC=|.text| { |MulticastEthAddrFromIpAddr| } ; comdat associative
|$T42394| DCD	|$L42393|
	DCD	0x40001001
; Function compile flags: /Ogsy

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

  00000		 |MulticastEthAddrFromIpAddr| PROC

; 782  : {

  00000		 |$L42393|
  00000	e92d4030	 stmdb       sp!, {r4, r5, lr}
  00004		 |$M42391|

; 783  : 	ethAddr[0] = 0x01;
; 784  : 	ethAddr[1] = 0x00;
; 785  : 	ethAddr[2] = 0x5E;
; 786  : 	ethAddr[3] = (UCHAR)((ipAddr & 0x00ff00)>>8) & 0x7f;

  00004	e1a03880	 mov         r3, r0, lsl #17

; 787  : 	ethAddr[4] = (UCHAR)((ipAddr & 0x00ff0000)>>16);

  00008	e1a02820	 mov         r2, r0, lsr #16
  0000c	e1a03ca3	 mov         r3, r3, lsr #25
  00010	e3a0e001	 mov         lr, #1
  00014	e3a04000	 mov         r4, #0
  00018	e3a0505e	 mov         r5, #0x5E

; 788  : 	ethAddr[5] = (UCHAR)((ipAddr & 0xff000000)>>24);

  0001c	e1a00c20	 mov         r0, r0, lsr #24
  00020	e5c13003	 strb        r3, [r1, #3]
  00024	e5c1e000	 strb        lr, [r1]
  00028	e5c14001	 strb        r4, [r1, #1]
  0002c	e5c15002	 strb        r5, [r1, #2]
  00030	e5c12004	 strb        r2, [r1, #4]
  00034	e5c10005	 strb        r0, [r1, #5]

; 789  : }

  00038	e8bd4030	 ldmia       sp!, {r4, r5, lr}
  0003c	e12fff1e	 bx          lr
  00040		 |$M42392|

			 ENDP  ; |MulticastEthAddrFromIpAddr|


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

  00000			 AREA	 |.pdata$$IsAnIPMulticastGroup|, PDATA, SELECTION=5, ASSOC=|.text| { |IsAnIPMulticastGroup| } ; comdat associative
|$T42403| DCD	|$L42402|
	DCD	0x40000d03
; Function compile flags: /Ogsy

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

  00000		 |IsAnIPMulticastGroup| PROC

; 800  : {

  00000		 |$L42402|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d000f	 stmdb       sp!, {r0 - r3}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c		 |$M42400|

; 801  : 	UCHAR *AddrArray = (PUCHAR)&IpAddr;
; 802  : 
; 803  : 	if (AddrArray[3] >= 224 && AddrArray[3] < 240) {

  0000c	e5dd300b	 ldrb        r3, [sp, #0xB]
  00010	e35300e0	 cmp         r3, #0xE0
  00014	3a000003	 bcc         |$L42073|
  00018	e35300f0	 cmp         r3, #0xF0

; 804  : 		return TRUE;

  0001c	33a00001	 movcc       r0, #1

; 807  : 	}
; 808  : }

  00020	389d6000	 ldmccia     sp, {sp, lr}
  00024	312fff1e	 bxcc        lr
  00028		 |$L42073|

; 805  : 	} else {
; 806  : 		return FALSE;

  00028	e3a00000	 mov         r0, #0

; 807  : 	}
; 808  : }

  0002c	e89d6000	 ldmia       sp, {sp, lr}
  00030	e12fff1e	 bx          lr
  00034		 |$M42401|

			 ENDP  ; |IsAnIPMulticastGroup|

	EXPORT	|IsAnIPv6MulticastGroup|

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

  00000			 AREA	 |.pdata$$IsAnIPv6MulticastGroup|, PDATA, SELECTION=5, ASSOC=|.text| { |IsAnIPv6MulticastGroup| } ; comdat associative
|$T42413| DCD	|$L42412|
	DCD	0x40000500
; Function compile flags: /Ogsy

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

  00000		 |IsAnIPv6MulticastGroup| PROC

; 813  : {

  00000		 |$L42412|
  00000		 |$M42410|

; 814  : 	if(ipAddr[0]==IPV6_MULTICAST_INDICATOR)

  00000	e5d03000	 ldrb        r3, [r0]
  00004	e35300ff	 cmp         r3, #0xFF

; 815  : 	{
; 816  : 		return TRUE;

  00008	03a00001	 moveq       r0, #1

; 817  : 	}
; 818  : 	else
; 819  : 	{
; 820  : 		return FALSE;

  0000c	13a00000	 movne       r0, #0

; 821  : 	}
; 822  : }

  00010	e12fff1e	 bx          lr
  00014		 |$M42411|

			 ENDP  ; |IsAnIPv6MulticastGroup|

	EXPORT	|MulticastEthAddrFromIPv6Addr|

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

  00000			 AREA	 |.pdata$$MulticastEthAddrFromIPv6Addr|, PDATA, SELECTION=5, ASSOC=|.text| { |MulticastEthAddrFromIPv6Addr| } ; comdat associative
|$T42422| DCD	|$L42421|
	DCD	0x40000c00
; Function compile flags: /Ogsy

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

  00000		 |MulticastEthAddrFromIPv6Addr| PROC

; 827  : {

  00000		 |$L42421|
  00000		 |$M42419|

; 828  : 	/*
; 829  : 	For IPv6 Multicast addresses, 
; 830  : 	the Ethernet MAC is derived by the four low-order octets 
; 831  : 	OR'ed with the MAC 33:33:00:00:00:00, 
; 832  : 	so for example the IPv6 address FF02:DEAD:BEEF:1:3 
; 833  : 	would map to the Ethernet MAC address 33:33:00:01:00:03
; 834  : 	*/
; 835  : 
; 836  : 	ethAddr[0] = 0x33;

  00000	e3a03033	 mov         r3, #0x33
  00004	e5c13000	 strb        r3, [r1]

; 837  : 	ethAddr[1] = 0x33;

  00008	e5c13001	 strb        r3, [r1, #1]

; 838  : 	ethAddr[2] = ipAddr[12];

  0000c	e5d0300c	 ldrb        r3, [r0, #0xC]
  00010	e5c13002	 strb        r3, [r1, #2]

; 839  : 	ethAddr[3] = ipAddr[13];

  00014	e5d0300d	 ldrb        r3, [r0, #0xD]
  00018	e5c13003	 strb        r3, [r1, #3]

; 840  : 	ethAddr[4] = ipAddr[14];

  0001c	e5d0300e	 ldrb        r3, [r0, #0xE]
  00020	e5c13004	 strb        r3, [r1, #4]

; 841  : 	ethAddr[5] = ipAddr[15];

  00024	e5d0300f	 ldrb        r3, [r0, #0xF]
  00028	e5c13005	 strb        r3, [r1, #5]

; 842  : }

  0002c	e12fff1e	 bx          lr
  00030		 |$M42420|

			 ENDP  ; |MulticastEthAddrFromIPv6Addr|

	EXPORT	|IndicateIpPacketReceive|
	IMPORT	|htons|
	IMPORT	|ntohl|

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

  00000			 AREA	 |.pdata$$IndicateIpPacketReceive|, PDATA, SELECTION=5, ASSOC=|.text| { |IndicateIpPacketReceive| } ; comdat associative
|$T42459| DCD	|$L42458|
	DCD	0x40006702
; Function compile flags: /Ogsy

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

  00000		 |IndicateIpPacketReceive| PROC

; 847  : {

  00000		 |$L42458|
  00000	e92d43f0	 stmdb       sp!, {r4 - r9, lr}
  00004	e24dd02c	 sub         sp, sp, #0x2C
  00008		 |$M42456|
  00008	e1a08002	 mov         r8, r2
  0000c	e1a06001	 mov         r6, r1
  00010	e1a07000	 mov         r7, r0
  00014	e59f317c	 ldr         r3, [pc, #0x17C]
  00018	e5933000	 ldr         r3, [r3]
  0001c	e58d3028	 str         r3, [sp, #0x28]

; 848  : 	ETHERNETHEADER_ST EthHdr;
; 849  : 	ULONG u32;
; 850  : 
; 851  : 	if ((pPacket[0] & 0xF0) == 0x60)

  00020	e5d63000	 ldrb        r3, [r6]
  00024	e20330f0	 and         r3, r3, #0xF0
  00028	e3530060	 cmp         r3, #0x60
  0002c	1a00001a	 bne         |$L42097|

; 852  : 	{
; 853  : 		// fill ethernet header
; 854  : 		if (IsAnIPv6MulticastGroup( pPacket + 24 /*DstAddress*/ ))

  00030	e5d63018	 ldrb        r3, [r6, #0x18]
  00034	e59f1158	 ldr         r1, [pc, #0x158]
  00038	e35300ff	 cmp         r3, #0xFF
  0003c	1a00000c	 bne         |$L42098|

; 855  : 		{
; 856  : 			MulticastEthAddrFromIPv6Addr(pPacket + 24 /*DstAddress*/ , EthHdr.DestAdd);

  00040	e5d63024	 ldrb        r3, [r6, #0x24]
  00044	e5d6e025	 ldrb        lr, [r6, #0x25]
  00048	e5d64026	 ldrb        r4, [r6, #0x26]
  0004c	e5d65027	 ldrb        r5, [r6, #0x27]
  00050	e3a02033	 mov         r2, #0x33
  00054	e3a00033	 mov         r0, #0x33
  00058	e5cd301a	 strb        r3, [sp, #0x1A]
  0005c	e5cde01b	 strb        lr, [sp, #0x1B]
  00060	e5cd401c	 strb        r4, [sp, #0x1C]
  00064	e5cd501d	 strb        r5, [sp, #0x1D]
  00068	e5cd2018	 strb        r2, [sp, #0x18]
  0006c	e5cd0019	 strb        r0, [sp, #0x19]

; 857  : 		}
; 858  : 		else

  00070	ea000003	 b           |$L42099|
  00074		 |$L42098|

; 859  : 		{
; 860  : 			memcpy(EthHdr.DestAdd, LocalMAC, 6);

  00074	e5913008	 ldr         r3, [r1, #8]
  00078	e1d120bc	 ldrh        r2, [r1, #0xC]
  0007c	e58d3018	 str         r3, [sp, #0x18]
  00080	e1cd21bc	 strh        r2, [sp, #0x1C]
  00084		 |$L42099|

; 861  : 		}
; 862  : 		memcpy(EthHdr.SrcAdd,RemoteMAC,6);

  00084	e28d001e	 add         r0, sp, #0x1E
  00088	e3a02006	 mov         r2, #6
  0008c	eb000000	 bl          memcpy

; 863  : 		EthHdr.PacketType = htons(PACKET_TYPE_IPV6);

  00090	e3a00c86	 mov         r0, #0x86, 24
  00094	e38000dd	 orr         r0, r0, #0xDD

; 864  : 	}
; 865  : 	else // v4

  00098	ea000026	 b           |$L42455|
  0009c		 |$L42097|

; 866  : 	{
; 867  : 		// fill ethernet header
; 868  : 		u32 = (pPacket[16] << 24) | (pPacket[17] << 16) | (pPacket[18] << 8) | pPacket[19]; /* DestAdd */

  0009c	e5d60010	 ldrb        r0, [r6, #0x10]
  000a0	e5d63011	 ldrb        r3, [r6, #0x11]
  000a4	e5d62012	 ldrb        r2, [r6, #0x12]
  000a8	e5d61013	 ldrb        r1, [r6, #0x13]
  000ac	e1833400	 orr         r3, r3, r0, lsl #8
  000b0	e1823403	 orr         r3, r2, r3, lsl #8
  000b4	e1814403	 orr         r4, r1, r3, lsl #8

; 869  : 		if (IsAnIPMulticastGroup( ntohl(u32) ))

  000b8	e1a00004	 mov         r0, r4
  000bc	eb000000	 bl          ntohl
  000c0	e58d0010	 str         r0, [sp, #0x10]
  000c4	e5dd3013	 ldrb        r3, [sp, #0x13]
  000c8	e59fe0c4	 ldr         lr, [pc, #0xC4]
  000cc	e35300e0	 cmp         r3, #0xE0
  000d0	3a00000f	 bcc         |$L42101|
  000d4	e35300f0	 cmp         r3, #0xF0
  000d8	2a00000d	 bcs         |$L42101|

; 870  : 		{
; 871  : 			MulticastEthAddrFromIpAddr(u32, EthHdr.DestAdd);

  000dc	e1a03884	 mov         r3, r4, lsl #17
  000e0	e1a03ca3	 mov         r3, r3, lsr #25
  000e4	e3a00001	 mov         r0, #1
  000e8	e3a05000	 mov         r5, #0
  000ec	e3a0905e	 mov         r9, #0x5E
  000f0	e1a02824	 mov         r2, r4, lsr #16
  000f4	e1a01c24	 mov         r1, r4, lsr #24
  000f8	e5cd301b	 strb        r3, [sp, #0x1B]
  000fc	e5cd0018	 strb        r0, [sp, #0x18]
  00100	e5cd5019	 strb        r5, [sp, #0x19]
  00104	e5cd901a	 strb        r9, [sp, #0x1A]
  00108	e5cd201c	 strb        r2, [sp, #0x1C]
  0010c	e5cd101d	 strb        r1, [sp, #0x1D]

; 872  : 		}

⌨️ 快捷键说明

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