summaryrefslogtreecommitdiffstats
path: root/libc-top-half/musl/src/misc/uname.c
diff options
context:
space:
mode:
Diffstat (limited to 'libc-top-half/musl/src/misc/uname.c')
-rw-r--r--libc-top-half/musl/src/misc/uname.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/libc-top-half/musl/src/misc/uname.c b/libc-top-half/musl/src/misc/uname.c
new file mode 100644
index 0000000..36e816a
--- /dev/null
+++ b/libc-top-half/musl/src/misc/uname.c
@@ -0,0 +1,32 @@
+#include <sys/utsname.h>
+#ifdef __wasilibc_unmodified_upstream // Implement uname with placeholders
+#include "syscall.h"
+#else
+#include <string.h>
+#endif
+
+int uname(struct utsname *uts)
+{
+#ifdef __wasilibc_unmodified_upstream // Implement uname with placeholders
+ return syscall(SYS_uname, uts);
+#else
+ // Just fill in the fields with placeholder values.
+ strcpy(uts->sysname, "wasi");
+ strcpy(uts->nodename, "(none)");
+ strcpy(uts->release, "0.0.0");
+ strcpy(uts->version, "0.0.0");
+#if defined(__wasm32__)
+ strcpy(uts->machine, "wasm32");
+#elif defined(__wasm64__)
+ strcpy(uts->machine, "wasm64");
+#else
+ strcpy(uts->machine, "unknown");
+#endif
+#ifdef _GNU_SOURCE
+ strcpy(uts->domainname, "(none)");
+#else
+ strcpy(uts->__domainname, "(none)");
+#endif
+ return 0;
+#endif
+}