summaryrefslogtreecommitdiff
path: root/lib/spawn_int.h
diff options
context:
space:
mode:
authorJosselin Poiret <dev@jpoiret.xyz>2022-09-05 08:48:13 +0200
committerLudovic Courtès <ludo@gnu.org>2023-01-12 16:41:29 +0100
commitedfca3b7e5931b5b5a83112e2a9813b068be99c2 (patch)
tree98f105cff95a668f5ecab668964bbcf1138d4d02 /lib/spawn_int.h
parentfe2a0c54ac7863a705da8f64fd548e4817b3fb72 (diff)
downloadguile-edfca3b7e5931b5b5a83112e2a9813b068be99c2.tar.gz
Update gnulib to 0.1.5414-8204d and add posix_spawn, posix_spawnp.
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'lib/spawn_int.h')
-rw-r--r--lib/spawn_int.h72
1 files changed, 72 insertions, 0 deletions
diff --git a/lib/spawn_int.h b/lib/spawn_int.h
new file mode 100644
index 000000000..93f2b751f
--- /dev/null
+++ b/lib/spawn_int.h
@@ -0,0 +1,72 @@
+/* Copyright (C) 2000, 2008-2022 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ This file is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 of the
+ License, or (at your option) any later version.
+
+ This file is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+#include <sys/types.h>
+
+/* Data structure to contain the action information. */
+struct __spawn_action
+{
+ enum
+ {
+ spawn_do_close,
+ spawn_do_dup2,
+ spawn_do_open,
+ spawn_do_chdir,
+ spawn_do_fchdir
+ } tag;
+
+ union
+ {
+ struct
+ {
+ int fd;
+ } close_action;
+ struct
+ {
+ int fd;
+ int newfd;
+ } dup2_action;
+ struct
+ {
+ int fd;
+ char *path;
+ int oflag;
+ mode_t mode;
+ } open_action;
+ struct
+ {
+ char *path;
+ } chdir_action;
+ struct
+ {
+ int fd;
+ } fchdir_action;
+ } action;
+};
+
+#if !_LIBC
+# define __posix_spawn_file_actions_realloc gl_posix_spawn_file_actions_realloc
+#endif
+extern int __posix_spawn_file_actions_realloc (posix_spawn_file_actions_t *
+ file_actions);
+
+#if !_LIBC
+# define __spawni gl_posix_spawn_internal
+#endif
+extern int __spawni (pid_t *pid, const char *path,
+ const posix_spawn_file_actions_t *file_actions,
+ const posix_spawnattr_t *attrp, const char *const argv[],
+ const char *const envp[], int use_path);