From dad52745227fd06090e73ea535e0b0fe0f667c60 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 10 Jan 2007 04:22:09 +0000 Subject: 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). --- src/net/arp.c | 4 ++-- src/net/netdevice.c | 12 ++++++++---- src/net/tcpip.c | 16 ++++++++-------- 3 files changed, 18 insertions(+), 14 deletions(-) (limited to 'src/net') diff --git a/src/net/arp.c b/src/net/arp.c index fea81d719..897906bcb 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 8c95afd6a..d8de81be8 100644 --- a/src/net/netdevice.c +++ b/src/net/netdevice.c @@ -27,6 +27,7 @@ #include #include #include +#include #include /** @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 eec9ee940..00f81cd98 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 * -- cgit v1.2.3-55-g7522