[U-Boot] [PATCH v7 14/27] net: Clean up network stack names used in DM drivers
Joe Hershberger
joe.hershberger at ni.com
Sun Mar 22 23:09:11 CET 2015
Take the opportunity to enforce better names on newly written or
retrofitted Ethernet drivers.
Signed-off-by: Joe Hershberger <joe.hershberger at ni.com>
Reviewed-by: Simon Glass <sjg at chromium.org>
---
Changes in v7: None
Changes in v6: None
Changes in v5:
-New to v5
Changes in v4: None
Changes in v3: None
Changes in v2: None
include/net.h | 9 ++++++++-
net/net.c | 30 +++++++++++++++++++-----------
2 files changed, 27 insertions(+), 12 deletions(-)
diff --git a/include/net.h b/include/net.h
index fff82cb..31ef1ff 100644
--- a/include/net.h
+++ b/include/net.h
@@ -466,7 +466,11 @@ extern uchar NetServerEther[6]; /* Boot server enet address */
extern IPaddr_t NetOurIP; /* Our IP addr (0 = unknown) */
extern IPaddr_t NetServerIP; /* Server IP addr (0 = unknown) */
extern uchar *NetTxPacket; /* THE transmit packet */
+#ifdef CONFIG_DM_ETH
+extern uchar *net_rx_packets[PKTBUFSRX]; /* Receive packets */
+#else
extern uchar *NetRxPackets[PKTBUFSRX]; /* Receive packets */
+#endif
extern uchar *NetRxPacket; /* Current receive packet */
extern int NetRxPacketLen; /* Current rx packet length */
extern unsigned NetIPID; /* IP ID (counting) */
@@ -616,8 +620,11 @@ static inline void NetSendPacket(uchar *pkt, int len)
int NetSendUDPPacket(uchar *ether, IPaddr_t dest, int dport,
int sport, int payload_len);
+#ifndef CONFIG_DM_ETH
+#define NetReceive(in_packet, len) net_process_received_packet(in_packet, len)
+#endif
/* Processes a received packet */
-void NetReceive(uchar *, int);
+void net_process_received_packet(uchar *in_packet, int len);
#ifdef CONFIG_NETCONSOLE
void NcStart(void);
diff --git a/net/net.c b/net/net.c
index 37b4aab..afec443 100644
--- a/net/net.c
+++ b/net/net.c
@@ -183,10 +183,13 @@ int NetTimeOffset;
#endif
static uchar PktBuf[(PKTBUFSRX+1) * PKTSIZE_ALIGN + PKTALIGN];
-
+#ifdef CONFIG_DM_ETH
+/* Receive packets */
+uchar *net_rx_packets[PKTBUFSRX];
+#else
/* Receive packet */
uchar *NetRxPackets[PKTBUFSRX];
-
+#endif
/* Current UDP RX packet handler */
static rxhand_f *udp_packet_handler;
/* Current ARP RX packet handler */
@@ -304,9 +307,15 @@ void net_init(void)
NetTxPacket = &PktBuf[0] + (PKTALIGN - 1);
NetTxPacket -= (ulong)NetTxPacket % PKTALIGN;
+#ifdef CONFIG_DM_ETH
+ for (i = 0; i < PKTBUFSRX; i++) {
+ net_rx_packets[i] = NetTxPacket + (i + 1) *
+ PKTSIZE_ALIGN;
+ }
+#else
for (i = 0; i < PKTBUFSRX; i++)
NetRxPackets[i] = NetTxPacket + (i + 1) * PKTSIZE_ALIGN;
-
+#endif
ArpInit();
net_clear_handlers();
@@ -952,8 +961,7 @@ static void receive_icmp(struct ip_udp_hdr *ip, int len,
}
}
-void
-NetReceive(uchar *inpkt, int len)
+void net_process_received_packet(uchar *in_packet, int len)
{
struct ethernet_hdr *et;
struct ip_udp_hdr *ip;
@@ -967,9 +975,9 @@ NetReceive(uchar *inpkt, int len)
debug_cond(DEBUG_NET_PKT, "packet received\n");
- NetRxPacket = inpkt;
+ NetRxPacket = in_packet;
NetRxPacketLen = len;
- et = (struct ethernet_hdr *)inpkt;
+ et = (struct ethernet_hdr *)in_packet;
/* too small packet? */
if (len < ETHER_HDR_SIZE)
@@ -977,7 +985,7 @@ NetReceive(uchar *inpkt, int len)
#ifdef CONFIG_API
if (push_packet) {
- (*push_packet)(inpkt, len);
+ (*push_packet)(in_packet, len);
return;
}
#endif
@@ -1004,11 +1012,11 @@ NetReceive(uchar *inpkt, int len)
*/
eth_proto = ntohs(et802->et_prot);
- ip = (struct ip_udp_hdr *)(inpkt + E802_HDR_SIZE);
+ ip = (struct ip_udp_hdr *)(in_packet + E802_HDR_SIZE);
len -= E802_HDR_SIZE;
} else if (eth_proto != PROT_VLAN) { /* normal packet */
- ip = (struct ip_udp_hdr *)(inpkt + ETHER_HDR_SIZE);
+ ip = (struct ip_udp_hdr *)(in_packet + ETHER_HDR_SIZE);
len -= ETHER_HDR_SIZE;
} else { /* VLAN packet */
@@ -1033,7 +1041,7 @@ NetReceive(uchar *inpkt, int len)
vlanid = cti & VLAN_IDMASK;
eth_proto = ntohs(vet->vet_type);
- ip = (struct ip_udp_hdr *)(inpkt + VLAN_ETHER_HDR_SIZE);
+ ip = (struct ip_udp_hdr *)(in_packet + VLAN_ETHER_HDR_SIZE);
len -= VLAN_ETHER_HDR_SIZE;
}
--
1.7.11.5
More information about the U-Boot
mailing list