All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] stubdom: permit compilation without lwip
@ 2008-06-06 10:46 Samuel Thibault
  0 siblings, 0 replies; only message in thread
From: Samuel Thibault @ 2008-06-06 10:46 UTC (permalink / raw)
  To: Xen-devel

stubdom: permit compilation without lwip

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>

diff -r b320cfe1f10f extras/mini-os/lib/sys.c
--- a/extras/mini-os/lib/sys.c	Thu Jun 05 13:04:07 2008 +0100
+++ b/extras/mini-os/lib/sys.c	Fri Jun 06 11:28:09 2008 +0100
@@ -43,7 +43,9 @@
 #include <stdlib.h>
 #include <math.h>
 
+#ifdef HAVE_LWIP
 #include <lwip/sockets.h>
+#endif
 #include <fs.h>
 
 #define debug(fmt, ...) \
@@ -240,8 +242,10 @@
 	    }
 	    return 0;
 	}
+#ifdef HAVE_LWIP
 	case FTYPE_SOCKET:
 	    return lwip_read(files[fd].socket.fd, buf, nbytes);
+#endif
 	case FTYPE_TAP: {
 	    ssize_t ret;
 	    ret = netfront_receive(files[fd].tap.dev, buf, nbytes);
@@ -299,8 +303,10 @@
 	    }
 	    return 0;
 	}
+#ifdef HAVE_LWIP
 	case FTYPE_SOCKET:
 	    return lwip_write(files[fd].socket.fd, (void*) buf, nbytes);
+#endif
 	case FTYPE_TAP:
 	    netfront_xmit(files[fd].tap.dev, (void*) buf, nbytes);
 	    return nbytes;
@@ -367,7 +373,7 @@
 {
     printk("close(%d)\n", fd);
     switch (files[fd].type) {
-	case FTYPE_CONSOLE:
+        default:
 	    files[fd].type = FTYPE_NONE;
 	    return 0;
 	case FTYPE_FILE: {
@@ -382,11 +388,13 @@
 	case FTYPE_XENBUS:
             xs_daemon_close((void*)(intptr_t) fd);
             return 0;
+#ifdef HAVE_LWIP
 	case FTYPE_SOCKET: {
 	    int res = lwip_close(files[fd].socket.fd);
 	    files[fd].type = FTYPE_NONE;
 	    return res;
 	}
+#endif
 	case FTYPE_XC:
 	    xc_interface_close(fd);
 	    return 0;
@@ -555,6 +563,7 @@
     va_end(ap);
 
     switch (cmd) {
+#ifdef HAVE_LWIP
 	case F_SETFL:
 	    if (files[fd].type == FTYPE_SOCKET && !(arg & ~O_NONBLOCK)) {
 		/* Only flag supported: non-blocking mode */
@@ -562,6 +571,7 @@
 		return lwip_ioctl(files[fd].socket.fd, FIONBIO, &nblock);
 	    }
 	    /* Fallthrough */
+#endif
 	default:
 	    printk("fcntl(%d, %d, %lx/%lo)\n", fd, cmd, arg, arg);
 	    errno = ENOSYS;
@@ -666,9 +676,12 @@
 /* Just poll without blocking */
 static int select_poll(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds)
 {
-    int i, n = 0, sock_n, sock_nfds = 0;
+    int i, n = 0;
+#ifdef HAVE_LWIP
+    int sock_n, sock_nfds = 0;
     fd_set sock_readfds, sock_writefds, sock_exceptfds;
     struct timeval timeout = { .tv_sec = 0, .tv_usec = 0};
+#endif
 
 #ifdef LIBC_VERBOSE
     static int nb;
@@ -678,6 +691,7 @@
     nb++;
 #endif
 
+#ifdef HAVE_LWIP
     /* first poll network */
     FD_ZERO(&sock_readfds);
     FD_ZERO(&sock_writefds);
@@ -704,6 +718,7 @@
     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. */
     for (i = 0; i < nfds; i++) {
@@ -752,6 +767,7 @@
 	    FD_CLR(i, writefds);
 	    FD_CLR(i, exceptfds);
 	    break;
+#ifdef HAVE_LWIP
 	case FTYPE_SOCKET:
 	    if (FD_ISSET(i, readfds)) {
 	        /* Optimize no-network-packet case.  */
@@ -773,6 +789,7 @@
 		    FD_CLR(i, exceptfds);
             }
 	    break;
+#endif
 	}
 #ifdef LIBC_VERBOSE
 	if (FD_ISSET(i, readfds))
@@ -938,6 +955,7 @@
     return ret;
 }
 
+#ifdef HAVE_LWIP
 int socket(int domain, int type, int protocol)
 {
     int fd, res;
@@ -989,6 +1007,7 @@
 LWIP_STUB(ssize_t, send, (int s, void *buf, size_t len, int flags), (s, buf, len, flags))
 LWIP_STUB(ssize_t, sendto, (int s, void *buf, size_t len, int flags, struct sockaddr *to, socklen_t tolen), (s, buf, len, flags, to, tolen))
 LWIP_STUB(int, getsockname, (int s, struct sockaddr *name, socklen_t *namelen), (s, name, namelen))
+#endif
 
 int nanosleep(const struct timespec *req, struct timespec *rem)
 {
--- a/extras/mini-os/main.c	Thu Jun 05 13:04:07 2008 +0100
+++ b/extras/mini-os/main.c	Fri Jun 06 11:28:09 2008 +0100
@@ -45,7 +44,9 @@
 
     sparse((unsigned long) &__app_bss_start, &__app_bss_end - &__app_bss_start);
+#ifdef HAVE_LWIP
     start_networking();
+#endif
     init_fs_frontend();
 
 #ifdef CONFIG_QEMU
     if (!fs_import) {
@@ -162,6 +163,9 @@
     close_all_files();
     __libc_fini_array();
     printk("main returned %d\n", ret);
+#ifdef HAVE_LWIP
+    stop_networking();
+#endif
     unbind_all_ports();
     if (!ret) {
 	/* No problem, just shutdown.  */

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-06-06 10:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-06 10:46 [PATCH] stubdom: permit compilation without lwip Samuel Thibault

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.