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/arch/i386/drivers/net/undi.c | 3 +++ src/arch/i386/drivers/net/undinet.c | 1 + src/arch/i386/drivers/net/undionly.c | 4 +++- 3 files changed, 7 insertions(+), 1 deletion(-) (limited to 'src/arch') diff --git a/src/arch/i386/drivers/net/undi.c b/src/arch/i386/drivers/net/undi.c index ac28c0207..fee20958a 100644 --- a/src/arch/i386/drivers/net/undi.c +++ b/src/arch/i386/drivers/net/undi.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -96,6 +97,8 @@ static int undipci_probe ( struct pci_device *pci, } /* Add to device hierarchy */ + snprintf ( undi->dev.name, sizeof ( undi->dev.name ), + "UNDI%04x:%04x", undi->entry.segment, undi->entry.offset ); undi->dev.parent = &pci->dev; INIT_LIST_HEAD ( &undi->dev.children ); list_add ( &undi->dev.siblings, &pci->dev.children ); diff --git a/src/arch/i386/drivers/net/undinet.c b/src/arch/i386/drivers/net/undinet.c index 5ff9bd428..5041e3a49 100644 --- a/src/arch/i386/drivers/net/undinet.c +++ b/src/arch/i386/drivers/net/undinet.c @@ -577,6 +577,7 @@ int undinet_probe ( struct undi_device *undi ) { return -ENOMEM; undinic = netdev->priv; undi_set_drvdata ( undi, netdev ); + netdev->dev = &undi->dev; memset ( undinic, 0, sizeof ( *undinic ) ); undinic->entry = undi->entry; DBGC ( undinic, "UNDINIC %p using UNDI %p\n", undinic, undi ); diff --git a/src/arch/i386/drivers/net/undionly.c b/src/arch/i386/drivers/net/undionly.c index 5b8ff9772..bd53e1d37 100644 --- a/src/arch/i386/drivers/net/undionly.c +++ b/src/arch/i386/drivers/net/undionly.c @@ -58,6 +58,8 @@ static int undibus_probe ( struct root_device *rootdev ) { } /* Add to device hierarchy */ + strncpy ( preloaded_undi.dev.name, "UNDI", + ( sizeof ( preloaded_undi.dev.name ) - 1 ) ); preloaded_undi.dev.parent = &rootdev->dev; list_add ( &preloaded_undi.dev.siblings, &rootdev->dev.children); INIT_LIST_HEAD ( &preloaded_undi.dev.children ); @@ -91,6 +93,6 @@ static struct root_driver undi_root_driver = { /** UNDI bus root device */ struct root_device undi_root_device __root_device = { - .name = "UNDI", + .dev = { .name = "UNDI" }, .driver = &undi_root_driver, }; -- cgit v1.2.3-55-g7522