Stubdom: add support for file creation. Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com> diff -r 73ec21ad5dc7 extras/mini-os/include/fcntl.h --- a/extras/mini-os/include/fcntl.h Tue Mar 11 16:01:04 2008 +0000 +++ b/extras/mini-os/include/fcntl.h Tue Mar 11 17:35:14 2008 +0000 @@ -1,5 +1,9 @@ #ifndef _I386_FCNTL_H #define _I386_FCNTL_H + +#ifdef HAVE_LIBC +#include_next <fcntl.h> +#else /* open/fcntl - O_SYNC is only implemented on blocks devices and on files located on an ext2 file system */ @@ -90,3 +94,5 @@ int open(const char *path, int flags, .. int open(const char *path, int flags, ...); int fcntl(int fd, int cmd, ...); #endif + +#endif diff -r 73ec21ad5dc7 extras/mini-os/lib/sys.c --- a/extras/mini-os/lib/sys.c Tue Mar 11 16:01:04 2008 +0000 +++ b/extras/mini-os/lib/sys.c Tue Mar 11 17:35:14 2008 +0000 @@ -172,8 +172,26 @@ int open(const char *pathname, int flags printk("open(%s) -> %d\n", pathname, fd); return fd; } - printk("open(%s)", pathname); - fs_fd = fs_open(fs_import, (void *) pathname); + printk("open(%s, %x)", pathname, flags); + switch (flags & ~O_ACCMODE) { + case 0: + fs_fd = fs_open(fs_import, (void *) pathname); + break; + case O_CREAT|O_TRUNC: + { + va_list ap; + mode_t mode; + va_start(ap, flags); + mode = va_arg(ap, mode_t); + va_end(ap); + fs_fd = fs_create(fs_import, (void *) pathname, 0, mode); + break; + } + default: + printk(" unsupported flags\n"); + stack_walk(); + do_exit(); + } if (fs_fd < 0) { errno = EIO; return -1; _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel