[U-Boot] [PATCH v2 10/21] net: cosmetic: Un-typedef Ethernet_t
Joe Hershberger
joe.hershberger at ni.com
Wed Mar 28 01:42:41 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>
Cc: Simon Glass <sjg at chromium.org>
Cc: Mike Frysinger <vapier at gentoo.org>
---
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
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..22e0730 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 e9b398a..328dc2c 100644
--- a/include/net.h
+++ b/include/net.h
@@ -155,7 +155,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 */
@@ -166,10 +176,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 d918810..8b30a73 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 3c27348..61a7a21 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 f5f9119..44c0b5c 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -105,7 +105,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 028be82..6be6665 100644
--- a/net/cdp.c
+++ b/net/cdp.c
@@ -108,7 +108,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) || \
@@ -117,7 +117,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 35ead0e..9c386ae 100644
--- a/net/net.c
+++ b/net/net.c
@@ -825,7 +825,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;
@@ -853,7 +853,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;
@@ -867,7 +867,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)
@@ -897,10 +897,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;
@@ -1220,7 +1221,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 fe4cead..e7fa64e 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 dd97b58..2560f66 100644
--- a/net/ping.h
+++ b/net/ping.h
@@ -17,7 +17,7 @@
#include <net.h>
void ping_start(void);
-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