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/arch/i386 | |
| 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/arch/i386')
| -rw-r--r-- | src/arch/i386/drivers/net/undi.c | 3 | ||||
| -rw-r--r-- | src/arch/i386/drivers/net/undinet.c | 1 | ||||
| -rw-r--r-- | src/arch/i386/drivers/net/undionly.c | 4 |
3 files changed, 7 insertions, 1 deletions
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 <stdint.h> #include <stdlib.h> #include <string.h> +#include <vsprintf.h> #include <gpxe/pci.h> #include <undi.h> #include <undirom.h> @@ -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, }; |
