diff options
| -rw-r--r-- | arch/powerpc/cpu/mpc8260/ether_fcc.c | 17 | ||||
| -rw-r--r-- | include/net.h | 18 | ||||
| -rw-r--r-- | net/arp.c | 4 | ||||
| -rw-r--r-- | net/arp.h | 2 | ||||
| -rw-r--r-- | net/bootp.c | 2 | ||||
| -rw-r--r-- | net/cdp.c | 4 | ||||
| -rw-r--r-- | net/net.c | 11 | ||||
| -rw-r--r-- | net/ping.c | 2 | ||||
| -rw-r--r-- | net/ping.h | 2 | 
9 files changed, 36 insertions, 26 deletions
| diff --git a/arch/powerpc/cpu/mpc8260/ether_fcc.c b/arch/powerpc/cpu/mpc8260/ether_fcc.c index eed0a4bab..18534516a 100644 --- a/arch/powerpc/cpu/mpc8260/ether_fcc.c +++ b/arch/powerpc/cpu/mpc8260/ether_fcc.c @@ -1049,11 +1049,11 @@ eth_loopback_test (void)  					}  					else {  						ushort datlen = bdp->cbd_datlen; -						Ethernet_t *ehp; +						struct ethernet_hdr *ehp;  						ushort prot;  						int ours, tb, n, nbytes; -						ehp = (Ethernet_t *) \ +						ehp = (struct ethernet_hdr *) \  							&ecp->rxbufs[i][0];  						ours = memcmp (ehp->et_src, \ @@ -1063,9 +1063,8 @@ eth_loopback_test (void)  						tb = prot & 0x8000;  						n = prot & 0x7fff; -						nbytes = ELBT_BUFSZ - \ -							offsetof (Ethernet_t, \ -								et_dsap) - \ +						nbytes = ELBT_BUFSZ - +							ETHER_HDR_SIZE -  							ELBT_CRCSZ;  						/* check the frame is correct */ @@ -1080,10 +1079,10 @@ eth_loopback_test (void)  								patwords[n];  							uint nbb; -							nbb = badbits ( \ -								&ehp->et_dsap, \ -								nbytes, \ -								patword); +							nbb = badbits( +							    ((uchar *)&ehp) + +							    ETHER_HDR_SIZE, +							    nbytes, patword);  							ecp->rxeacc.badbit += \  								nbb; diff --git a/include/net.h b/include/net.h index 7692153b3..255151603 100644 --- a/include/net.h +++ b/include/net.h @@ -156,7 +156,17 @@ u32 ether_crc(size_t len, unsigned char const *p);  /*   *	Ethernet header   */ -typedef struct { + +struct ethernet_hdr { +	uchar		et_dest[6];	/* Destination node		*/ +	uchar		et_src[6];	/* Source node			*/ +	ushort		et_protlen;	/* Protocol or length		*/ +}; + +/* Ethernet header size */ +#define ETHER_HDR_SIZE	(sizeof(struct ethernet_hdr)) + +struct e802_hdr {  	uchar		et_dest[6];	/* Destination node		*/  	uchar		et_src[6];	/* Source node			*/  	ushort		et_protlen;	/* Protocol or length		*/ @@ -167,10 +177,10 @@ typedef struct {  	uchar		et_snap2;  	uchar		et_snap3;  	ushort		et_prot;	/* 802 protocol			*/ -} Ethernet_t; +}; -#define ETHER_HDR_SIZE	14		/* Ethernet header size		*/ -#define E802_HDR_SIZE	22		/* 802 ethernet header size	*/ +/* 802 ethernet header size */ +#define E802_HDR_SIZE	(sizeof(struct e802_hdr))  /*   *	Ethernet header @@ -113,7 +113,7 @@ void ArpTimeoutCheck(void)  	}  } -void ArpReceive(Ethernet_t *et, struct ip_udp_hdr *ip, int len) +void ArpReceive(struct ethernet_hdr *et, struct ip_udp_hdr *ip, int len)  {  	ARP_t *arp;  	IPaddr_t tmp; @@ -193,7 +193,7 @@ void ArpReceive(Ethernet_t *et, struct ip_udp_hdr *ip, int len)  			NetGetHandler()(0, 0, 0, 0, 0);  #endif  			/* modify header, and transmit it */ -			memcpy(((Ethernet_t *)NetArpWaitTxPacket)-> +			memcpy(((struct ethernet_hdr *)NetArpWaitTxPacket)->  				et_dest, NetArpWaitPacketMAC, 6);  			(void) eth_send(NetArpWaitTxPacket,  					NetArpWaitTxPacketSize); @@ -25,6 +25,6 @@ extern int NetArpWaitTry;  void ArpInit(void);  void ArpRequest(void);  void ArpTimeoutCheck(void); -void ArpReceive(Ethernet_t *et, struct ip_udp_hdr *ip, int len); +void ArpReceive(struct ethernet_hdr *et, struct ip_udp_hdr *ip, int len);  #endif /* __ARP_H__ */ diff --git a/net/bootp.c b/net/bootp.c index b8d276067..32852500d 100644 --- a/net/bootp.c +++ b/net/bootp.c @@ -103,7 +103,7 @@ static void BootpCopyNetParams(struct Bootp_t *bp)  	NetCopyIP(&tmp_ip, &bp->bp_siaddr);  	if (tmp_ip != 0)  		NetCopyIP(&NetServerIP, &bp->bp_siaddr); -	memcpy(NetServerEther, ((Ethernet_t *)NetRxPacket)->et_src, 6); +	memcpy(NetServerEther, ((struct ethernet_hdr *)NetRxPacket)->et_src, 6);  #endif  	if (strlen(bp->bp_file) > 0)  		copy_filename(BootFile, bp->bp_file, sizeof(BootFile)); @@ -109,7 +109,7 @@ CDPSendTrigger(void)  	uchar *pkt;  	ushort *s;  	ushort *cp; -	Ethernet_t *et; +	struct ethernet_hdr *et;  	int len;  	ushort chksum;  #if	defined(CONFIG_CDP_DEVICE_ID) || defined(CONFIG_CDP_PORT_ID)   || \ @@ -118,7 +118,7 @@ CDPSendTrigger(void)  #endif  	pkt = NetTxPacket; -	et = (Ethernet_t *)pkt; +	et = (struct ethernet_hdr *)pkt;  	/* NOTE: trigger sent not on any VLAN */ @@ -823,7 +823,7 @@ static inline struct ip_udp_hdr *NetDefragment(struct ip_udp_hdr *ip, int *lenp)   * @parma ip	IP packet containing the ICMP   */  static void receive_icmp(struct ip_udp_hdr *ip, int len, -			IPaddr_t src_ip, Ethernet_t *et) +			IPaddr_t src_ip, struct ethernet_hdr *et)  {  	ICMP_t *icmph = (ICMP_t *)&ip->udp_src; @@ -851,7 +851,7 @@ static void receive_icmp(struct ip_udp_hdr *ip, int len,  void  NetReceive(uchar *inpkt, int len)  { -	Ethernet_t *et; +	struct ethernet_hdr *et;  	struct ip_udp_hdr *ip;  	IPaddr_t tmp;  	IPaddr_t src_ip; @@ -865,7 +865,7 @@ NetReceive(uchar *inpkt, int len)  	NetRxPacket = inpkt;  	NetRxPacketLen = len; -	et = (Ethernet_t *)inpkt; +	et = (struct ethernet_hdr *)inpkt;  	/* too small packet? */  	if (len < ETHER_HDR_SIZE) @@ -895,10 +895,11 @@ NetReceive(uchar *inpkt, int len)  	debug("packet received\n");  	if (x < 1514) { +		struct e802_hdr *et802 = (struct e802_hdr *)et;  		/*  		 *	Got a 802 packet.  Check the other protocol field.  		 */ -		x = ntohs(et->et_prot); +		x = ntohs(et802->et_prot);  		ip = (struct ip_udp_hdr *)(inpkt + E802_HDR_SIZE);  		len -= E802_HDR_SIZE; @@ -1218,7 +1219,7 @@ NetEthHdrSize(void)  int  NetSetEther(uchar *xet, uchar * addr, uint prot)  { -	Ethernet_t *et = (Ethernet_t *)xet; +	struct ethernet_hdr *et = (struct ethernet_hdr *)xet;  	ushort myvlanid;  	myvlanid = ntohs(NetOurVLAN); diff --git a/net/ping.c b/net/ping.c index 8542e2299..04a594cf5 100644 --- a/net/ping.c +++ b/net/ping.c @@ -98,7 +98,7 @@ void ping_start(void)  	ping_send();  } -void ping_receive(Ethernet_t *et, struct ip_udp_hdr *ip, int len) +void ping_receive(struct ethernet_hdr *et, struct ip_udp_hdr *ip, int len)  {  	ICMP_t *icmph = (ICMP_t *)&(ip->udp_src);  	IPaddr_t src_ip; diff --git a/net/ping.h b/net/ping.h index 0a2d7d179..fd8d8d977 100644 --- a/net/ping.h +++ b/net/ping.h @@ -28,7 +28,7 @@ void ping_start(void);   * @param ip IP header in the same packet   * @param len Packet length   */ -void ping_receive(Ethernet_t *et, struct ip_udp_hdr *ip, int len); +void ping_receive(struct ethernet_hdr *et, struct ip_udp_hdr *ip, int len);  #endif /* __PING_H__ */  #endif |