From f7c99dfcbee03d77dd2bde2d3e17efac00bf18e6 Mon Sep 17 00:00:00 2001 From: Mark Date: Mon, 24 Aug 2020 11:37:36 +0300 Subject: [PATCH] ***: add various stub functions for binutils --- include/fcntl.h | 2 ++ include/sys/stat.h | 2 ++ src/fcntl/fcntl.c | 9 +++++++++ src/stdio/atof.c | 7 +++++++ src/stdlib/mbstowcs.c | 9 +++++++++ src/sys/stat/umask.c | 7 +++++++ src/unistd/sysconf.c | 12 +++++++++--- 7 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 src/fcntl/fcntl.c create mode 100644 src/stdio/atof.c create mode 100644 src/stdlib/mbstowcs.c create mode 100644 src/sys/stat/umask.c diff --git a/include/fcntl.h b/include/fcntl.h index f84ba19..d890cc6 100644 --- a/include/fcntl.h +++ b/include/fcntl.h @@ -4,3 +4,5 @@ int open(const char *pathname, int flags, ...); int openat(int dfd, const char *pathname, int flags, mode_t mode); + +int fcntl(int fd, int cmd, ...); diff --git a/include/sys/stat.h b/include/sys/stat.h index 23cab50..229e94f 100644 --- a/include/sys/stat.h +++ b/include/sys/stat.h @@ -8,6 +8,8 @@ int lstat(const char *restrict path, struct stat *restrict buf); int fstat(int fd, struct stat *st); int fstatat(int dfd, const char *restrict path, struct stat *restrict buf, int flags); +mode_t umask(mode_t cmask); + int mkdir(const char *path, mode_t mode); int mkdirat(int fd, const char *path, mode_t mode); int chmod(const char *pathname, mode_t mode); diff --git a/src/fcntl/fcntl.c b/src/fcntl/fcntl.c new file mode 100644 index 0000000..f6eba17 --- /dev/null +++ b/src/fcntl/fcntl.c @@ -0,0 +1,9 @@ +#include +#include + +int fcntl(int fd, int cmd, ...) { + return 0; + (void) fd; + (void) cmd; + assert(0 && "Not implemented yet"); +} diff --git a/src/stdio/atof.c b/src/stdio/atof.c new file mode 100644 index 0000000..485a18d --- /dev/null +++ b/src/stdio/atof.c @@ -0,0 +1,7 @@ +#include + +double atof(const char *str) { + (void) str; + // TODO + return 0.0; +} diff --git a/src/stdlib/mbstowcs.c b/src/stdlib/mbstowcs.c new file mode 100644 index 0000000..4f4201d --- /dev/null +++ b/src/stdlib/mbstowcs.c @@ -0,0 +1,9 @@ +#include +#include + +size_t mbstowcs(wchar_t *dest, const char *src, size_t n) { + (void) dest; + (void) src; + (void) n; + assert(0 && "Not implemented yet\n"); +} diff --git a/src/sys/stat/umask.c b/src/sys/stat/umask.c new file mode 100644 index 0000000..6c77d19 --- /dev/null +++ b/src/sys/stat/umask.c @@ -0,0 +1,7 @@ +#include +#include + +mode_t umask(mode_t cmask) { + (void) cmask; + assert(0 && "Not implemented yet"); +} diff --git a/src/unistd/sysconf.c b/src/unistd/sysconf.c index 1d7bcc6..0bc37f3 100644 --- a/src/unistd/sysconf.c +++ b/src/unistd/sysconf.c @@ -1,7 +1,13 @@ #include -#include +#include +#include long sysconf(int name) { - (void) name; - assert(0 && "Not implemented"); + switch (name) { + case _SC_OPEN_MAX: + return 16; + default: + fprintf(stderr, "Unknown sysconf(): %d\n", name); + abort(); + } }