exp2l: Work around a NetBSD 10.0/i386 bug.
[gnulib.git] / lib / spawn_int.h
blob021d2adec619f41406b68dd0db2bc15aed56188b
1 /* Copyright (C) 2000, 2008-2024 Free Software Foundation, Inc.
2 This file is part of the GNU C Library.
4 This file is free software: you can redistribute it and/or modify
5 it under the terms of the GNU Lesser General Public License as
6 published by the Free Software Foundation; either version 2.1 of the
7 License, or (at your option) any later version.
9 This file is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU Lesser General Public License for more details.
14 You should have received a copy of the GNU Lesser General Public License
15 along with this program. If not, see <https://www.gnu.org/licenses/>. */
17 #include <sys/types.h>
19 /* Data structure to contain the action information. */
20 struct __spawn_action
22 enum
24 spawn_do_close,
25 spawn_do_dup2,
26 spawn_do_open,
27 spawn_do_chdir,
28 spawn_do_fchdir
29 } tag;
31 union
33 struct
35 int fd;
36 } close_action;
37 struct
39 int fd;
40 int newfd;
41 } dup2_action;
42 struct
44 int fd;
45 char *path;
46 int oflag;
47 mode_t mode;
48 } open_action;
49 struct
51 char *path;
52 } chdir_action;
53 struct
55 int fd;
56 } fchdir_action;
57 } action;
60 #if !_LIBC
61 # define __posix_spawn_file_actions_realloc gl_posix_spawn_file_actions_realloc
62 #endif
63 extern int __posix_spawn_file_actions_realloc (posix_spawn_file_actions_t *
64 file_actions);
66 #if !_LIBC
67 # define __spawni gl_posix_spawn_internal
68 #endif
69 extern int __spawni (pid_t *pid, const char *path,
70 const posix_spawn_file_actions_t *file_actions,
71 const posix_spawnattr_t *attrp, const char *const argv[],
72 const char *const envp[], int use_path);