diff options
Diffstat (limited to 'system/include/libc')
-rw-r--r-- | system/include/libc/stdio.h | 9 | ||||
-rw-r--r-- | system/include/libc/sys/_default_fcntl.h | 5 | ||||
-rw-r--r-- | system/include/libc/sys/dirent.h | 4 | ||||
-rw-r--r-- | system/include/libc/sys/types.h | 13 | ||||
-rw-r--r-- | system/include/libc/sys/unistd.h | 7 |
5 files changed, 25 insertions, 13 deletions
diff --git a/system/include/libc/stdio.h b/system/include/libc/stdio.h index 19e460a3..4e14df79 100644 --- a/system/include/libc/stdio.h +++ b/system/include/libc/stdio.h @@ -142,6 +142,7 @@ typedef _fpos64_t fpos64_t; #define TMP_MAX 26 +#if 0 /* XXX Emscripten: do not use impure stuff for std*, it makes comparing to native builds harder */ #ifndef _REENT_ONLY #define stdin (_REENT->_stdin) #define stdout (_REENT->_stdout) @@ -151,6 +152,14 @@ typedef _fpos64_t fpos64_t; #define stdout (_impure_ptr->_stdout) #define stderr (_impure_ptr->_stderr) #endif /* _REENT_ONLY */ +#else +extern FILE *stdin; +extern FILE *stdout; +extern FILE *stderr; +#define stdin stdin +#define stdout stdout +#define stderr stderr +#endif #define _stdin_r(x) ((x)->_stdin) #define _stdout_r(x) ((x)->_stdout) diff --git a/system/include/libc/sys/_default_fcntl.h b/system/include/libc/sys/_default_fcntl.h index 0f2ffb07..188e25c4 100644 --- a/system/include/libc/sys/_default_fcntl.h +++ b/system/include/libc/sys/_default_fcntl.h @@ -209,6 +209,11 @@ extern int _open64 _PARAMS ((const char *, int, ...)); #define POSIX_FADV_DONTNEED 135 int posix_fadvise(int fd, off_t offset, off_t len, int advice); int posix_fallocate(int fd, off_t offset, off_t len); +#define LOCK_SH 1 +#define LOCK_EX 2 +#define LOCK_UN 4 +#define LOCK_NB 8 +int flock(int fd, int operation); #ifdef __cplusplus } diff --git a/system/include/libc/sys/dirent.h b/system/include/libc/sys/dirent.h index 1fbe2b21..9dcf34d1 100644 --- a/system/include/libc/sys/dirent.h +++ b/system/include/libc/sys/dirent.h @@ -26,6 +26,10 @@ long telldir(DIR *); DIR *readdir(DIR *); int closedir(DIR *dirp); void rewinddir(DIR *dirp); +int scandir(const char *dirp, + struct dirent ***namelist, + int (*filter)(const struct dirent *), + int (*compar)(const struct dirent **, const struct dirent **)); enum { DT_UNKNOWN = 0, diff --git a/system/include/libc/sys/types.h b/system/include/libc/sys/types.h index ab6e895b..2f887537 100644 --- a/system/include/libc/sys/types.h +++ b/system/include/libc/sys/types.h @@ -24,7 +24,7 @@ #include <machine/_types.h> -#if defined(__rtems__) || defined(__XMK__) +#if defined(__rtems__) || defined(__XMK__) || defined(EMSCRIPTEN) /* * The following section is RTEMS specific and is needed to more * closely match the types defined in the BSD sys/types.h. @@ -140,15 +140,8 @@ typedef unsigned long vm_size_t; #define __BIT_TYPES_DEFINED__ -typedef signed char int8_t; -typedef unsigned char u_int8_t; -typedef short int16_t; -typedef unsigned short u_int16_t; -typedef int int32_t; -typedef unsigned int u_int32_t; -typedef long long int64_t; -typedef unsigned long long u_int64_t; -typedef int32_t register_t; +// XXX Emscripten: removed types which are already defined, get them from stdint +#include <stdint.h> #endif /* __MS_types__ */ /* diff --git a/system/include/libc/sys/unistd.h b/system/include/libc/sys/unistd.h index 05b9286a..082c5e4d 100644 --- a/system/include/libc/sys/unistd.h +++ b/system/include/libc/sys/unistd.h @@ -260,9 +260,10 @@ int _EXFUN(unlinkat, (int, const char *, int)); #include <sys/features.h> -#define STDIN_FILENO 0 /* standard input file descriptor */ -#define STDOUT_FILENO 1 /* standard output file descriptor */ -#define STDERR_FILENO 2 /* standard error file descriptor */ +/* XXX Emscripten: start these at 1, we can use pointers as equals to file descriptors */ +#define STDIN_FILENO 1 /* standard input file descriptor */ +#define STDOUT_FILENO 2 /* standard output file descriptor */ +#define STDERR_FILENO 3 /* standard error file descriptor */ /* * sysconf values per IEEE Std 1003.1, 2008 Edition |