aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--extras/mini-os/lib/sys.c16
-rw-r--r--extras/mini-os/main.c2
-rw-r--r--extras/mini-os/netfront.c11
-rw-r--r--stubdom/README17
4 files changed, 20 insertions, 26 deletions
diff --git a/extras/mini-os/lib/sys.c b/extras/mini-os/lib/sys.c
index 7c5f05cd41..12395bf730 100644
--- a/extras/mini-os/lib/sys.c
+++ b/extras/mini-os/lib/sys.c
@@ -677,7 +677,7 @@ static int select_poll(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exce
{
int i, n = 0;
#ifdef HAVE_LWIP
- int sock_n, sock_nfds = 0;
+ int sock_n = 0, sock_nfds = 0;
fd_set sock_readfds, sock_writefds, sock_exceptfds;
struct timeval timeout = { .tv_sec = 0, .tv_usec = 0};
#endif
@@ -711,12 +711,14 @@ static int select_poll(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exce
}
}
}
- DEBUG("lwip_select(");
- dump_set(nfds, &sock_readfds, &sock_writefds, &sock_exceptfds, &timeout);
- DEBUG("); -> ");
- sock_n = lwip_select(sock_nfds, &sock_readfds, &sock_writefds, &sock_exceptfds, &timeout);
- dump_set(nfds, &sock_readfds, &sock_writefds, &sock_exceptfds, &timeout);
- DEBUG("\n");
+ if (sock_nfds > 0) {
+ DEBUG("lwip_select(");
+ dump_set(nfds, &sock_readfds, &sock_writefds, &sock_exceptfds, &timeout);
+ DEBUG("); -> ");
+ sock_n = lwip_select(sock_nfds, &sock_readfds, &sock_writefds, &sock_exceptfds, &timeout);
+ dump_set(nfds, &sock_readfds, &sock_writefds, &sock_exceptfds, &timeout);
+ DEBUG("\n");
+ }
#endif
/* Then see others as well. */
diff --git a/extras/mini-os/main.c b/extras/mini-os/main.c
index 3289c638e4..204cf85f8a 100644
--- a/extras/mini-os/main.c
+++ b/extras/mini-os/main.c
@@ -62,7 +62,7 @@ static void call_main(void *p)
#ifndef CONFIG_GRUB
sparse((unsigned long) &__app_bss_start, &__app_bss_end - &__app_bss_start);
-#ifdef HAVE_LWIP
+#if defined(HAVE_LWIP) && !defined(CONFIG_QEMU)
start_networking();
#endif
init_fs_frontend();
diff --git a/extras/mini-os/netfront.c b/extras/mini-os/netfront.c
index 824c42a737..a235769377 100644
--- a/extras/mini-os/netfront.c
+++ b/extras/mini-os/netfront.c
@@ -306,11 +306,16 @@ struct netfront_dev *init_netfront(char *_nodename, void (*thenetif_rx)(unsigned
int retry=0;
int i;
char* msg;
- char* nodename = _nodename ? _nodename : "device/vif/0";
-
+ char nodename[256];
+ char path[256];
struct netfront_dev *dev;
+ static int netfrontends = 0;
- char path[strlen(nodename) + 1 + 10 + 1];
+ if (!_nodename)
+ snprintf(nodename, sizeof(nodename), "device/vif/%d", netfrontends);
+ else
+ strncpy(nodename, _nodename, strlen(nodename));
+ netfrontends++;
if (!thenetif_rx)
thenetif_rx = netif_rx;
diff --git a/stubdom/README b/stubdom/README
index 5bc2211d61..db10f56267 100644
--- a/stubdom/README
+++ b/stubdom/README
@@ -31,11 +31,10 @@ Create /etc/xen/hvmconfig-dm (where "hvmconfig" is the name of your HVM
guest) with
kernel = "/usr/lib/xen/boot/ioemu-stubdom.gz"
-vif = [ '', 'ip=10.0.1.1,mac=aa:00:00:12:23:34']
+vif = ['ip=10.0.1.1,mac=aa:00:00:12:23:34']
disk = [ 'file:/tmp/install.iso,hdc:cdrom,r', 'phy:/dev/sda6,hda,w', 'file:/tmp/test,hdb,r' ]
where
-- the first vif ('') is reserved for VNC (see below)
- 'ip=10.0.1.1,mac= etc...' is the same net configuration as in the hvmconfig
script,
- and disk = is the same block configuration as in the hvmconfig script.
@@ -43,7 +42,7 @@ script,
Display Configuration
=====================
-There are three posibilities
+There are two possibilities
* Using SDL
@@ -61,18 +60,6 @@ vfb = [ 'type=sdl' ]
vfb = [ 'type=sdl, opengl=0' ]
-* Using a VNC server in the stub domain
-
- - In hvmconfig, set vnclisten to "172.30.206.1" for instance. Do not use a
-host name as Mini-OS does not have a name resolver. Do not use 127.0.0.1 since
-then you will not be able to connect to it.
-
-vnc = 1
-vnclisten = "172.30.206.1"
-
- - In hvmconfig-dm, fill the reserved vif with the same IP, for instance:
-
-vif = [ 'ip=172.30.206.1', 'ip=10.0.1.1,mac=aa:00:00:12:23:34']
* Using a VNC server in dom0