[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [UNIKRAFT PATCH 6/7] lib/vfscore: Expose max fds to sysconf
Hey,I noticed that this commit breaks compiling posix-sysinfo with nolibc because _SC_OPEN_MAX is undefined. I guess it is defined with newlib or musl, unfortunately not with nolibc but should have been added with this patch. We are currently using posix-sysinfo with nolibc for binary compatibility use cases where we try to populate the Linux system call ABI with a slim kernel libc (nolibc). @Clupu or @Cristian: Can you review and push a fix that I am going to send? Thanks, Simon On 05.05.20 20:19, Costin Lupu wrote: Thanks for adding this, Cristi! I'll upstream this now and we shall skip it from the v2. Reviewed-by: Costin Lupu <costin.lupu@xxxxxxxxx> On 5/2/20 6:13 PM, Cristian Banu wrote:Expose FDTABLE_MAX_FILES from vfscore as the return value of sysconf(_SC_OPEN_MAX) if CONFIG_LIBVFSCORE is enabled. This allows language runtimes to inspect the number of active fds (e.g. for tests). Signed-off-by: Cristian Banu <cristb@xxxxxxxxx> --- lib/posix-sysinfo/sysinfo.c | 10 ++++++++++ lib/vfscore/fd.c | 2 -- lib/vfscore/include/vfscore/file.h | 3 +++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/posix-sysinfo/sysinfo.c b/lib/posix-sysinfo/sysinfo.c index 7bcfc8b..075f320 100644 --- a/lib/posix-sysinfo/sysinfo.c +++ b/lib/posix-sysinfo/sysinfo.c @@ -43,6 +43,11 @@ #include <sys/sysinfo.h> #include <uk/syscall.h>+#if CONFIG_LIBVFSCORE+/* For FDTABLE_MAX_FILES. */ +#include <vfscore/file.h> +#endif + static struct utsname utsname = { .sysname = "Unikraft", .nodename = "unikraft", @@ -85,6 +90,11 @@ long sysconf(int name) if (name == _SC_PAGESIZE) return __PAGE_SIZE;+#if CONFIG_LIBVFSCORE+ if (name == _SC_OPEN_MAX) + return FDTABLE_MAX_FILES; +#endif + return 0; }diff --git a/lib/vfscore/fd.c b/lib/vfscore/fd.cindex 684ea50..956846f 100644 --- a/lib/vfscore/fd.c +++ b/lib/vfscore/fd.c @@ -42,8 +42,6 @@ #include <errno.h> #include <uk/ctors.h>-#define FDTABLE_MAX_FILES 1024- void init_stdio(void);struct fdtable {diff --git a/lib/vfscore/include/vfscore/file.h b/lib/vfscore/include/vfscore/file.h index be23974..ec45a08 100644 --- a/lib/vfscore/include/vfscore/file.h +++ b/lib/vfscore/include/vfscore/file.h @@ -80,6 +80,9 @@ int fdrop(struct vfscore_file* fp);#define FOF_OFFSET 0x0800 /* Use the offset in uio argument */ +/* Used from posix-sysinfo to determine sysconf(_SC_OPEN_MAX). */+#define FDTABLE_MAX_FILES 1024 + #ifdef __cplusplus } #endif
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |