[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT PATCH 1/1] Implement sethostname and uname
--- lib/uksysinfo/exportsyms.uk | 1 + lib/uksysinfo/sysinfo.c | 39 +++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/lib/uksysinfo/exportsyms.uk b/lib/uksysinfo/exportsyms.uk index 2e35b6fa..73e1fe99 100644 --- a/lib/uksysinfo/exportsyms.uk +++ b/lib/uksysinfo/exportsyms.uk @@ -5,3 +5,4 @@ pathconf getpagesize uname gethostname +sethostname diff --git a/lib/uksysinfo/sysinfo.c b/lib/uksysinfo/sysinfo.c index 15e097c4..b41b2f7b 100644 --- a/lib/uksysinfo/sysinfo.c +++ b/lib/uksysinfo/sysinfo.c @@ -39,6 +39,21 @@ #include <string.h> #include <sys/utsname.h> #include <uk/essentials.h> +#include <uk/config.h> + +static struct utsname utsname = { + .sysname = "Unikraft", + .nodename = "unikraft", + .release = STRINGIFY(UK_CODENAME), + .version = STRINGIFY(UK_FULLVERSION), +#ifdef ARCH_X86_64 + .machine = "x86_64" +#elif ARCH_ARM_64 + .machine = "arm64" +#elif ARCH_ARM_32 + .machine = "arm32" +#endif +}; long fpathconf(int fd __unused, int name __unused) { @@ -70,6 +85,30 @@ int getpagesize(void) int uname(struct utsname *buf __unused) { + if (buf == NULL) { + errno = EFAULT; + return -1; + } + + memcpy(buf, &utsname, sizeof(struct utsname)); + return 0; +} + +int sethostname(const char *name, size_t len) +{ + if (name == NULL) { + errno = EFAULT; + return -1; + } + + if (len < 0 || len > sizeof(utsname.nodename)) { + errno = EINVAL; + return -1; + } + + strncpy(utsname.nodename, name, len); + if (len < sizeof(utsname.nodename)) + utsname.nodename[len] = 0; return 0; } -- 2.20.1 _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |