diff options
-rw-r--r-- | extras/mini-os/lib/sys.c | 16 | ||||
-rw-r--r-- | extras/mini-os/main.c | 2 | ||||
-rw-r--r-- | extras/mini-os/netfront.c | 11 | ||||
-rw-r--r-- | stubdom/README | 17 |
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 |