diff options
Diffstat (limited to 'system/include')
-rw-r--r-- | system/include/dlfcn.h | 8 | ||||
-rw-r--r-- | system/include/execinfo.h | 44 | ||||
-rw-r--r-- | system/include/libc/pthread.h | 4 | ||||
-rw-r--r-- | system/include/libc/sys/resource.h | 1 | ||||
-rw-r--r-- | system/include/libc/sys/types.h | 8 | ||||
-rw-r--r-- | system/include/mntent.h | 23 | ||||
-rw-r--r-- | system/include/spawn.h | 105 | ||||
-rw-r--r-- | system/include/sys/ioctl.h | 3 |
8 files changed, 193 insertions, 3 deletions
diff --git a/system/include/dlfcn.h b/system/include/dlfcn.h index 34a85289..6854dab0 100644 --- a/system/include/dlfcn.h +++ b/system/include/dlfcn.h @@ -8,10 +8,18 @@ extern "C" { #define RTLD_GLOBAL 4 #define RTLD_LOCAL 8 +typedef struct { + const char *dli_fname; + void *dli_fbase; + const char *dli_sname; + void *dli_saddr; +} Dl_info; + void *dlopen(const char *, int); void *dlsym(void *, const char *); int dlclose(void *); char *dlerror(void); +int dladdr(void *addr, Dl_info *info); #ifdef __cplusplus } diff --git a/system/include/execinfo.h b/system/include/execinfo.h new file mode 100644 index 00000000..17cda148 --- /dev/null +++ b/system/include/execinfo.h @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2003 Maxim Sobolev <sobomax@FreeBSD.org> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id: execinfo.h,v 1.2 2004/07/19 05:20:29 sobomax Exp $ + */ + +#ifndef COMPAT_EXECINFO_H_INCLUDED +#define COMPAT_EXECINFO_H_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +int backtrace(void **, int); +char ** backtrace_symbols(void *const *, int); +void backtrace_symbols_fd(void *const *, int, int); + +#ifdef __cplusplus +} +#endif + +#endif /* COMPAT_EXECINFO_H_INCLUDED */ diff --git a/system/include/libc/pthread.h b/system/include/libc/pthread.h index 1185fcc1..ae9f2c88 100644 --- a/system/include/libc/pthread.h +++ b/system/include/libc/pthread.h @@ -27,7 +27,7 @@ extern "C" { #include <unistd.h> -#if defined(_POSIX_THREADS) || defined(EMSCRIPTEN) +#if defined(_POSIX_THREADS) #include <sys/types.h> #include <time.h> @@ -46,7 +46,7 @@ int _EXFUN(pthread_mutexattr_getpshared, int _EXFUN(pthread_mutexattr_setpshared, (pthread_mutexattr_t *__attr, int __pshared)); -#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) || defined(EMSCRIPTEN) +#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) /* Single UNIX Specification 2 Mutex Attributes types */ diff --git a/system/include/libc/sys/resource.h b/system/include/libc/sys/resource.h index a7fbe4dd..f39dcb33 100644 --- a/system/include/libc/sys/resource.h +++ b/system/include/libc/sys/resource.h @@ -43,6 +43,7 @@ struct rlimit { rlim_t rlim_cur; rlim_t rlim_max; }; +int getrlimit(int resource, struct rlimit *rlim); int setrlimit(int resource, const struct rlimit *rlim); #endif diff --git a/system/include/libc/sys/types.h b/system/include/libc/sys/types.h index 2f887537..4bf41a34 100644 --- a/system/include/libc/sys/types.h +++ b/system/include/libc/sys/types.h @@ -24,6 +24,12 @@ #include <machine/_types.h> +#if EMSCRIPTEN + #define _POSIX_THREADS + #define _UNIX98_THREAD_MUTEX_ATTRIBUTES + #define _POSIX_READER_WRITER_LOCKS +#endif + #if defined(__rtems__) || defined(__XMK__) || defined(EMSCRIPTEN) /* * The following section is RTEMS specific and is needed to more @@ -360,7 +366,7 @@ typedef struct { #endif /* !defined(__XMK__) */ -#if defined(_POSIX_THREAD_PROCESS_SHARED) +#if defined(_POSIX_THREAD_PROCESS_SHARED) || defined(EMSCRIPTEN) /* NOTE: P1003.1c/D10, p. 81 defines following values for process_shared. */ #define PTHREAD_PROCESS_PRIVATE 0 /* visible within only the creating process */ diff --git a/system/include/mntent.h b/system/include/mntent.h new file mode 100644 index 00000000..462c6065 --- /dev/null +++ b/system/include/mntent.h @@ -0,0 +1,23 @@ + +#ifndef _MNTENT_H +#define _MNTENT_H + +#include <stdio.h> + +struct mntent { + char *mnt_fsname; + char *mnt_dir; + char *mnt_type; + char *mnt_opts; + int mnt_freq; + int mnt_passno; +}; + +struct mntent *getmntent(FILE *f); +FILE *setmntent(const char *filename, const char *type); +int addmntent(FILE *f, const struct mntent *m); +int endmntent(FILE *f); +char *hasmntopt(const struct mntent *m, const char *opt); + +#endif + diff --git a/system/include/spawn.h b/system/include/spawn.h new file mode 100644 index 00000000..e251b6f1 --- /dev/null +++ b/system/include/spawn.h @@ -0,0 +1,105 @@ +/* $OpenBSD: spawn.h,v 1.1 2012/03/21 23:20:35 matthew Exp $ */ +/*- + * Copyright (c) 2008 Ed Schouten <ed@FreeBSD.org> + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD: src/include/spawn.h,v 1.3.2.1.6.1 2010/12/21 17:09:25 kensmith Exp $ + */ + +#ifndef _SPAWN_H_ +#define _SPAWN_H_ + +#include <sys/cdefs.h> +#include <sys/types.h> +#include <sys/signal.h> + +struct sched_param; + +typedef struct __posix_spawnattr *posix_spawnattr_t; +typedef struct __posix_spawn_file_actions *posix_spawn_file_actions_t; + +#define POSIX_SPAWN_RESETIDS 0x01 +#define POSIX_SPAWN_SETPGROUP 0x02 +#define POSIX_SPAWN_SETSCHEDPARAM 0x04 +#define POSIX_SPAWN_SETSCHEDULER 0x08 +#define POSIX_SPAWN_SETSIGDEF 0x10 +#define POSIX_SPAWN_SETSIGMASK 0x20 + +__BEGIN_DECLS +/* + * Spawn routines + * + * XXX both arrays should be __restrict, but this does not work when GCC + * is invoked with -std=c99. + */ +int posix_spawn(pid_t *__restrict, const char *__restrict, + const posix_spawn_file_actions_t *, const posix_spawnattr_t *__restrict, + char *const [], char *const []); +int posix_spawnp(pid_t *__restrict, const char *__restrict, + const posix_spawn_file_actions_t *, const posix_spawnattr_t *__restrict, + char *const [], char *const []); + +/* + * File descriptor actions + */ +int posix_spawn_file_actions_init(posix_spawn_file_actions_t *); +int posix_spawn_file_actions_destroy(posix_spawn_file_actions_t *); + +int posix_spawn_file_actions_addopen(posix_spawn_file_actions_t *__restrict, + int, const char *__restrict, int, mode_t); +int posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t *, int, int); +int posix_spawn_file_actions_addclose(posix_spawn_file_actions_t *, int); + +/* + * Spawn attributes + */ +int posix_spawnattr_init(posix_spawnattr_t *); +int posix_spawnattr_destroy(posix_spawnattr_t *); + +int posix_spawnattr_getflags(const posix_spawnattr_t *__restrict, + short *__restrict); +int posix_spawnattr_getpgroup(const posix_spawnattr_t *__restrict, + pid_t *__restrict); +int posix_spawnattr_getschedparam(const posix_spawnattr_t *__restrict, + struct sched_param *__restrict); +int posix_spawnattr_getschedpolicy(const posix_spawnattr_t *__restrict, + int *__restrict); +int posix_spawnattr_getsigdefault(const posix_spawnattr_t *__restrict, + sigset_t *__restrict); +int posix_spawnattr_getsigmask(const posix_spawnattr_t *__restrict, + sigset_t *__restrict sigmask); + +int posix_spawnattr_setflags(posix_spawnattr_t *, short); +int posix_spawnattr_setpgroup(posix_spawnattr_t *, pid_t); +int posix_spawnattr_setschedparam(posix_spawnattr_t *__restrict, + const struct sched_param *__restrict); +int posix_spawnattr_setschedpolicy(posix_spawnattr_t *, int); +int posix_spawnattr_setsigdefault(posix_spawnattr_t *__restrict, + const sigset_t *__restrict); +int posix_spawnattr_setsigmask(posix_spawnattr_t *__restrict, + const sigset_t *__restrict); +__END_DECLS + +#endif /* !_SPAWN_H_ */ + diff --git a/system/include/sys/ioctl.h b/system/include/sys/ioctl.h index b7ade699..edc9ea36 100644 --- a/system/include/sys/ioctl.h +++ b/system/include/sys/ioctl.h @@ -8,6 +8,9 @@ extern "C" { #define SIOCGIFCONF 1 // bogus value #define SIOCGIFNETMASK 2 // bogus value +#define TIOCGSIZE 80 // bogus +#define TIOCGWINSZ 80 // bogus + int ioctl(int d, int request, ...); #define SO_RCVTIMEO 1000 |