aboutsummaryrefslogtreecommitdiff
path: root/system/include
diff options
context:
space:
mode:
Diffstat (limited to 'system/include')
-rw-r--r--system/include/dlfcn.h8
-rw-r--r--system/include/execinfo.h44
-rw-r--r--system/include/libc/pthread.h4
-rw-r--r--system/include/libc/sys/resource.h1
-rw-r--r--system/include/libc/sys/types.h8
-rw-r--r--system/include/mntent.h23
-rw-r--r--system/include/spawn.h105
-rw-r--r--system/include/sys/ioctl.h3
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