diff options
author | Michael Brown | 2007-01-10 05:22:09 +0100 |
---|---|---|
committer | Michael Brown | 2007-01-10 05:22:09 +0100 |
commit | dad52745227fd06090e73ea535e0b0fe0f667c60 (patch) | |
tree | 6be296bedc785a5aab0d055ae148c6ffb1fe285f /src/net | |
parent | Remove uIP; we haven't used it for quite some time now. (diff) | |
download | ipxe-dad52745227fd06090e73ea535e0b0fe0f667c60.tar.gz ipxe-dad52745227fd06090e73ea535e0b0fe0f667c60.tar.xz ipxe-dad52745227fd06090e73ea535e0b0fe0f667c60.zip |
Add "name" field to struct device to allow human-readable hardware device
names.
Add "dev" pointer in struct net_device to tie network interfaces back to a
hardware device.
Force natural alignment of data types in __table() macros. This seems to
prevent gcc from taking the unilateral decision to occasionally increase
their alignment (which screws up the table packing).
Diffstat (limited to 'src/net')
-rw-r--r-- | src/net/arp.c | 4 | ||||
-rw-r--r-- | src/net/netdevice.c | 12 | ||||
-rw-r--r-- | src/net/tcpip.c | 16 |
3 files changed, 18 insertions, 14 deletions
diff --git a/src/net/arp.c b/src/net/arp.c index fea81d71..897906bc 100644 --- a/src/net/arp.c +++ b/src/net/arp.c @@ -38,9 +38,9 @@ /** Registered ARP protocols */ static struct arp_net_protocol arp_net_protocols[0] - __table_start ( arp_net_protocols ); + __table_start ( struct arp_net_protocol, arp_net_protocols ); static struct arp_net_protocol arp_net_protocols_end[0] - __table_end ( arp_net_protocols ); + __table_end ( struct arp_net_protocol, arp_net_protocols ); /** An ARP cache entry */ struct arp_entry { diff --git a/src/net/netdevice.c b/src/net/netdevice.c index 8c95afd6..d8de81be 100644 --- a/src/net/netdevice.c +++ b/src/net/netdevice.c @@ -27,6 +27,7 @@ #include <gpxe/tables.h> #include <gpxe/process.h> #include <gpxe/init.h> +#include <gpxe/device.h> #include <gpxe/netdevice.h> /** @file @@ -36,8 +37,10 @@ */ /** Registered network-layer protocols */ -static struct net_protocol net_protocols[0] __table_start ( net_protocols ); -static struct net_protocol net_protocols_end[0] __table_end ( net_protocols ); +static struct net_protocol net_protocols[0] + __table_start ( struct net_protocol, net_protocols ); +static struct net_protocol net_protocols_end[0] + __table_end ( struct net_protocol, net_protocols ); /** List of network devices */ struct list_head net_devices = LIST_HEAD_INIT ( net_devices ); @@ -200,8 +203,9 @@ int register_netdev ( struct net_device *netdev ) { /* Add to device list */ list_add_tail ( &netdev->list, &net_devices ); - DBGC ( netdev, "NETDEV %p registered as %s (%s)\n", - netdev, netdev->name, netdev_hwaddr ( netdev ) ); + DBGC ( netdev, "NETDEV %p registered as %s (phys %s hwaddr %s)\n", + netdev, netdev->name, netdev->dev->name, + netdev_hwaddr ( netdev ) ); return 0; } diff --git a/src/net/tcpip.c b/src/net/tcpip.c index eec9ee94..00f81cd9 100644 --- a/src/net/tcpip.c +++ b/src/net/tcpip.c @@ -15,16 +15,16 @@ */ /** Registered network-layer protocols that support TCP/IP */ -static struct tcpip_net_protocol -tcpip_net_protocols[0] __table_start ( tcpip_net_protocols ); -static struct tcpip_net_protocol -tcpip_net_protocols_end[0] __table_end ( tcpip_net_protocols ); +static struct tcpip_net_protocol tcpip_net_protocols[0] + __table_start ( struct tcpip_net_protocol, tcpip_net_protocols ); +static struct tcpip_net_protocol tcpip_net_protocols_end[0] + __table_end ( struct tcpip_net_protocol, tcpip_net_protocols ); /** Registered transport-layer protocols that support TCP/IP */ -static struct tcpip_protocol -tcpip_protocols[0]__table_start ( tcpip_protocols ); -static struct tcpip_protocol -tcpip_protocols_end[0] __table_end ( tcpip_protocols ); +static struct tcpip_protocol tcpip_protocols[0] + __table_start ( struct tcpip_protocol, tcpip_protocols ); +static struct tcpip_protocol tcpip_protocols_end[0] + __table_end ( struct tcpip_protocol, tcpip_protocols ); /** Process a received TCP/IP packet * |