aboutsummaryrefslogtreecommitdiffstats
path: root/extras/mini-os/netfront.c
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2008-03-19 16:20:14 +0000
committerKeir Fraser <keir.fraser@citrix.com>2008-03-19 16:20:14 +0000
commitdf4e524d8dd89f83a848e2641b3d2bcbb07807d9 (patch)
tree3afdc4cfaaa549f32778395f5edac611fa2f13cf /extras/mini-os/netfront.c
parent6fef410021e2f5384a46aca3b6f49a507d331420 (diff)
downloadxen-df4e524d8dd89f83a848e2641b3d2bcbb07807d9.tar.gz
xen-df4e524d8dd89f83a848e2641b3d2bcbb07807d9.tar.bz2
xen-df4e524d8dd89f83a848e2641b3d2bcbb07807d9.zip
minios: Automatically set IP from XenStore information
Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
Diffstat (limited to 'extras/mini-os/netfront.c')
-rw-r--r--extras/mini-os/netfront.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/extras/mini-os/netfront.c b/extras/mini-os/netfront.c
index 9b709d9826..3159c30445 100644
--- a/extras/mini-os/netfront.c
+++ b/extras/mini-os/netfront.c
@@ -259,7 +259,7 @@ void netfront_select_handler(evtchn_port_t port, struct pt_regs *regs, void *dat
}
#endif
-struct netfront_dev *init_netfront(char *nodename, void (*thenetif_rx)(unsigned char* data, int len), unsigned char rawmac[6])
+struct netfront_dev *init_netfront(char *nodename, void (*thenetif_rx)(unsigned char* data, int len), unsigned char rawmac[6], char **ip)
{
xenbus_transaction_t xbt;
char* err;
@@ -402,6 +402,11 @@ done:
xenbus_wait_for_value(path,"4");
xenbus_unwatch_path(XBT_NIL, path);
+
+ if (ip) {
+ snprintf(path, sizeof(path), "%s/ip", dev->backend);
+ xenbus_read(XBT_NIL, path, ip);
+ }
}
printk("**************************\n");
@@ -427,7 +432,7 @@ done:
int netfront_tap_open(char *nodename) {
struct netfront_dev *dev;
- dev = init_netfront(nodename, NETIF_SELECT_RX, NULL);
+ dev = init_netfront(nodename, NETIF_SELECT_RX, NULL, NULL);
if (!dev) {
printk("TAP open failed\n");
errno = EIO;