From a00695bdac036bc5b03c9a1b5ac64e7c1844d16e Mon Sep 17 00:00:00 2001 From: Bananymous Date: Tue, 6 Jan 2026 16:06:40 +0200 Subject: [PATCH] LibC: Add stubs that I have locally I'm not sure if these are used by anything but I would assume so as I have added them :D functions added: - getprotobyname - open_memstream - munlock - lockf - nice - crypt - getsid - wcstoul --- userspace/libraries/LibC/netdb.cpp | 6 ++++++ userspace/libraries/LibC/stdio.cpp | 7 +++++++ userspace/libraries/LibC/sys/mman.cpp | 5 +++++ userspace/libraries/LibC/unistd.cpp | 30 +++++++++++++++++++++++++++ userspace/libraries/LibC/wchar.cpp | 1 + 5 files changed, 49 insertions(+) diff --git a/userspace/libraries/LibC/netdb.cpp b/userspace/libraries/LibC/netdb.cpp index a0a1d8db..6217dce7 100644 --- a/userspace/libraries/LibC/netdb.cpp +++ b/userspace/libraries/LibC/netdb.cpp @@ -319,3 +319,9 @@ struct servent* getservbyname(const char* name, const char* proto) dwarnln("TODO: getservbyname(\"{}\", \"{}\")", name, proto); return nullptr; } + +struct protoent* getprotobynumber(int proto) +{ + dwarnln("TODO: getprotobynumber({})", proto); + return nullptr; +} diff --git a/userspace/libraries/LibC/stdio.cpp b/userspace/libraries/LibC/stdio.cpp index 95c1472e..1b6c6dad 100644 --- a/userspace/libraries/LibC/stdio.cpp +++ b/userspace/libraries/LibC/stdio.cpp @@ -649,6 +649,13 @@ char* gets(char* buffer) } } +FILE* open_memstream(char** bufp, size_t* sizep) +{ + (void)bufp; + (void)sizep; + ASSERT_NOT_REACHED(); +} + int pclose(FILE* file) { if (file->pid == -1) diff --git a/userspace/libraries/LibC/sys/mman.cpp b/userspace/libraries/LibC/sys/mman.cpp index ebc4b3c7..09f11bf5 100644 --- a/userspace/libraries/LibC/sys/mman.cpp +++ b/userspace/libraries/LibC/sys/mman.cpp @@ -53,6 +53,11 @@ int mlock(const void*, size_t) ASSERT_NOT_REACHED(); } +int munlock(const void*, size_t) +{ + ASSERT_NOT_REACHED(); +} + int shm_open(const char* name, int oflag, mode_t mode) { (void)name; diff --git a/userspace/libraries/LibC/unistd.cpp b/userspace/libraries/LibC/unistd.cpp index 7209a0ca..1ea5f819 100644 --- a/userspace/libraries/LibC/unistd.cpp +++ b/userspace/libraries/LibC/unistd.cpp @@ -689,6 +689,30 @@ int getpagesize(void) return PAGE_SIZE; } +int lockf(int fildes, int function, off_t size) +{ + (void)fildes; + (void)function; + (void)size; + derrorln("TODO: lockf"); + ASSERT_NOT_REACHED(); +} + +int nice(int incr) +{ + dwarnln("TODO: nice({})", incr); + errno = EPERM; + return -1; +} + +char* crypt(const char* key, const char* salt) +{ + (void)key; + (void)salt; + derrorln("TODO: crypt"); + ASSERT_NOT_REACHED(); +} + char* getpass(const char* prompt) { static char buffer[PASS_MAX]; @@ -774,6 +798,12 @@ pid_t getpgid(pid_t pid) return syscall(SYS_GET_PGID, pid); } +pid_t getsid(pid_t pid) +{ + (void)pid; + ASSERT_NOT_REACHED(); +} + int tcgetpgrp(int fildes) { return syscall(SYS_TCGETPGRP, fildes); diff --git a/userspace/libraries/LibC/wchar.cpp b/userspace/libraries/LibC/wchar.cpp index 299fe79d..a1f8ef44 100644 --- a/userspace/libraries/LibC/wchar.cpp +++ b/userspace/libraries/LibC/wchar.cpp @@ -26,6 +26,7 @@ int wcwidth(wchar_t wc) wchar_t* wcstok(wchar_t* __restrict, const wchar_t* __restrict, wchar_t** __restrict) { ASSERT_NOT_REACHED(); } long wcstol(const wchar_t* __restrict, wchar_t** __restrict, int) { ASSERT_NOT_REACHED(); } +unsigned long wcstoul(const wchar_t* __restrict, wchar_t** __restrict, int) { ASSERT_NOT_REACHED(); } int swprintf(wchar_t* __restrict, size_t, const wchar_t* __restrict, ...) { ASSERT_NOT_REACHED(); } size_t wcrtomb(char* __restrict s, wchar_t ws, mbstate_t* __restrict ps)