[U-Boot] [PATCH v3 10/21] net: cosmetic: Un-typedef Ethernet_t

Joe Hershberger joe.hershberger at ni.com
Wed May 23 19:58:06 CEST 2012


Separate the Ethernet header from the 802 header.
Base the size constants on the structs.

Signed-off-by: Joe Hershberger <joe.hershberger at ni.com>
Cc: Joe Hershberger <joe.hershberger at gmail.com>
---
Changes for v2:
   - Split apart from "Un-typedef variables in net"
   - Created a new E802_hdr struct and removed 802 members from Ethernet_hdr
   - Renamed structs from *_t to *_hdr since they are nolonger types
   - Replaced offsetof(Ethernet_t, et_dsap) with ETHER_HDR_SIZE in arch/powerpc/cpu/mpc8260/ether_fcc.c
Changes for v3:
   - Renamed Ethernet_hdr to ethernet_hdr
   - Renamed E802_hdr to e802_hdr

 arch/powerpc/cpu/mpc8260/ether_fcc.c |   17 ++++++++---------
 include/net.h                        |   18 ++++++++++++++----
 net/arp.c                            |    4 ++--
 net/arp.h                            |    2 +-
 net/bootp.c                          |    2 +-
 net/cdp.c                            |    4 ++--
 net/net.c                            |   11 ++++++-----
 net/ping.c                           |    2 +-
 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 879ec0e..0eb74d4 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 7692153..2551516 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
diff --git a/net/arp.c b/net/arp.c
index 03272ad..c3def63 100644
--- a/net/arp.c
+++ b/net/arp.c
@@ -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);
diff --git a/net/arp.h b/net/arp.h
index b59fbdd..b7a1ac9 100644
--- a/net/arp.h
+++ b/net/arp.h
@@ -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 b8d2760..3285250 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));
diff --git a/net/cdp.c b/net/cdp.c
index 004aae2..63be570 100644
--- a/net/cdp.c
+++ b/net/cdp.c
@@ -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 */
 
diff --git a/net/net.c b/net/net.c
index 2bf5631..33de399 100644
--- a/net/net.c
+++ b/net/net.c
@@ -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 8542e22..04a594c 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 0a2d7d1..fd8d8d9 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
-- 
1.6.0.2



More information about the U-Boot mailing list