summaryrefslogtreecommitdiff
path: root/include/net.h
diff options
context:
space:
mode:
authorBernhard Nortmann <bernhard.nortmann@web.de>2015-09-14 15:29:43 +0200
committerJoe Hershberger <joe.hershberger@ni.com>2015-09-29 21:54:45 -0500
commiteaa8a195cc2372349276bf7d581a9e1e2cc83511 (patch)
tree8944c5ec6ac73f2e36c7841a7eb4715fb7a96a28 /include/net.h
parent26d3acdab86a4ade8e9407822d8cdbe51b1f7412 (diff)
downloadu-boot-eaa8a195cc2372349276bf7d581a9e1e2cc83511.tar.gz
u-boot-eaa8a195cc2372349276bf7d581a9e1e2cc83511.tar.bz2
u-boot-eaa8a195cc2372349276bf7d581a9e1e2cc83511.zip
net: expose eth_is_active() function to test network device state
The previous eth_device struct returned by eth_get_dev() allowed code to directly query the state member field. However, with CONFIG_DM_ETH this data gets encapsulated (i.e. private), and eth_get_dev() returns a udevice struct 'abstraction' instead. This breaks legacy code relying on the former behaviour - e.g. netconsole. (see http://lists.denx.de/pipermail/u-boot/2015-June/216528.html) The patch introduces a method to retrieve the ethernet device state in a 'clean' and uniform way, supporting both legacy code and driver model. The new function eth_is_active() accepts a device struct pointer and tests it for ETH_STATE_ACTIVE. Signed-off-by: Bernhard Nortmann <bernhard.nortmann@web.de> Reviewed-by: Simon Glass <sjg@chromium.org> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Diffstat (limited to 'include/net.h')
-rw-r--r--include/net.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/net.h b/include/net.h
index f1671e38de..3a787cc4e9 100644
--- a/include/net.h
+++ b/include/net.h
@@ -149,7 +149,9 @@ struct udevice *eth_get_dev(void); /* get the current device */
*/
struct udevice *eth_get_dev_by_name(const char *devname);
unsigned char *eth_get_ethaddr(void); /* get the current device MAC */
+
/* Used only when NetConsole is enabled */
+int eth_is_active(struct udevice *dev); /* Test device for active state */
int eth_init_state_only(void); /* Set active state */
void eth_halt_state_only(void); /* Set passive state */
#endif
@@ -195,6 +197,8 @@ static inline unsigned char *eth_get_ethaddr(void)
return NULL;
}
+/* Used only when NetConsole is enabled */
+int eth_is_active(struct eth_device *dev); /* Test device for active state */
/* Set active state */
static inline __attribute__((always_inline)) int eth_init_state_only(void)
{