Index: newlib/libc/include/spawn.h |
diff --git a/newlib/libc/include/spawn.h b/newlib/libc/include/spawn.h |
index 5a6692f11558de5c7785fb1a7b47985e8e718ebd..3d3067d914bbd22387fc746451f93c56d40e7217 100644 |
--- a/newlib/libc/include/spawn.h |
+++ b/newlib/libc/include/spawn.h |
@@ -28,16 +28,49 @@ |
#define _SPAWN_H_ |
#include <_ansi.h> |
+#include <sched.h> |
#include <sys/cdefs.h> |
#include <sys/types.h> |
#include <sys/_types.h> |
+#include <sys/queue.h> |
#define __need_sigset_t |
#include <signal.h> |
struct sched_param; |
-typedef struct __posix_spawnattr *posix_spawnattr_t; |
-typedef struct __posix_spawn_file_actions *posix_spawn_file_actions_t; |
+typedef struct { |
+ short sa_flags; |
+ pid_t sa_pgroup; |
+ struct sched_param sa_schedparam; |
+ int sa_schedpolicy; |
+ sigset_t sa_sigdefault; |
+ sigset_t sa_sigmask; |
+} posix_spawnattr_t; |
+ |
+typedef struct __posix_spawn_file_actions_entry { |
+ STAILQ_ENTRY(__posix_spawn_file_actions_entry) fae_list; |
+ enum { FAE_OPEN, FAE_DUP2, FAE_CLOSE } fae_action; |
+ |
+ int fae_fildes; |
+ union { |
+ struct { |
+ char *path; |
+#define fae_path fae_data.open.path |
+ int oflag; |
+#define fae_oflag fae_data.open.oflag |
+ mode_t mode; |
+#define fae_mode fae_data.open.mode |
+ } open; |
+ struct { |
+ int newfildes; |
+#define fae_newfildes fae_data.dup2.newfildes |
+ } dup2; |
+ } fae_data; |
+} posix_spawn_file_actions_entry_t; |
+ |
+typedef struct { |
+ STAILQ_HEAD(, __posix_spawn_file_actions_entry) fa_list; |
+} posix_spawn_file_actions_t; |
#define POSIX_SPAWN_RESETIDS 0x01 |
#define POSIX_SPAWN_SETPGROUP 0x02 |