]> git.ipfire.org Git - thirdparty/bash.git/blob - execute_cmd.h
bash-5.1 distribution sources and documentation
[thirdparty/bash.git] / execute_cmd.h
1 /* execute_cmd.h - functions from execute_cmd.c. */
2
3 /* Copyright (C) 1993-2017 Free Software Foundation, Inc.
4
5 This file is part of GNU Bash, the Bourne Again SHell.
6
7 Bash is free software: you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
11
12 Bash is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with Bash. If not, see <http://www.gnu.org/licenses/>.
19 */
20
21 #if !defined (_EXECUTE_CMD_H_)
22 #define _EXECUTE_CMD_H_
23
24 #include "stdc.h"
25
26 #if defined (ARRAY_VARS)
27 struct func_array_state
28 {
29 ARRAY *funcname_a;
30 SHELL_VAR *funcname_v;
31 ARRAY *source_a;
32 SHELL_VAR *source_v;
33 ARRAY *lineno_a;
34 SHELL_VAR *lineno_v;
35 };
36 #endif
37
38 /* Placeholder for later expansion to include more execution state */
39 /* XXX - watch out for pid_t */
40 struct execstate
41 {
42 pid_t pid;
43 int subshell_env;
44 };
45
46
47 /* Variables declared in execute_cmd.c, used by many other files */
48 extern int return_catch_flag;
49 extern int return_catch_value;
50 extern volatile int last_command_exit_value;
51 extern int last_command_exit_signal;
52 extern int builtin_ignoring_errexit;
53 extern int executing_builtin;
54 extern int executing_list;
55 extern int comsub_ignore_return;
56 extern int subshell_level;
57 extern int match_ignore_case;
58 extern int executing_command_builtin;
59 extern int funcnest, funcnest_max;
60 extern int evalnest, evalnest_max;
61 extern int sourcenest, sourcenest_max;
62 extern int stdin_redir;
63 extern int line_number_for_err_trap;
64
65 extern char *the_printed_command_except_trap;
66
67 extern char *this_command_name;
68 extern SHELL_VAR *this_shell_function;
69
70 /* Functions declared in execute_cmd.c, used by many other files */
71
72 extern struct fd_bitmap *new_fd_bitmap PARAMS((int));
73 extern void dispose_fd_bitmap PARAMS((struct fd_bitmap *));
74 extern void close_fd_bitmap PARAMS((struct fd_bitmap *));
75 extern int executing_line_number PARAMS((void));
76 extern int execute_command PARAMS((COMMAND *));
77 extern int execute_command_internal PARAMS((COMMAND *, int, int, int, struct fd_bitmap *));
78 extern int shell_execve PARAMS((char *, char **, char **));
79 extern void setup_async_signals PARAMS((void));
80 extern void async_redirect_stdin PARAMS((void));
81
82 extern void undo_partial_redirects PARAMS((void));
83 extern void dispose_partial_redirects PARAMS((void));
84 extern void dispose_exec_redirects PARAMS((void));
85
86 extern int execute_shell_function PARAMS((SHELL_VAR *, WORD_LIST *));
87
88 extern struct coproc *getcoprocbypid PARAMS((pid_t));
89 extern struct coproc *getcoprocbyname PARAMS((const char *));
90
91 extern void coproc_init PARAMS((struct coproc *));
92 extern struct coproc *coproc_alloc PARAMS((char *, pid_t));
93 extern void coproc_dispose PARAMS((struct coproc *));
94 extern void coproc_flush PARAMS((void));
95 extern void coproc_close PARAMS((struct coproc *));
96 extern void coproc_closeall PARAMS((void));
97 extern void coproc_reap PARAMS((void));
98 extern pid_t coproc_active PARAMS((void));
99
100 extern void coproc_rclose PARAMS((struct coproc *, int));
101 extern void coproc_wclose PARAMS((struct coproc *, int));
102 extern void coproc_fdclose PARAMS((struct coproc *, int));
103
104 extern void coproc_checkfd PARAMS((struct coproc *, int));
105 extern void coproc_fdchk PARAMS((int));
106
107 extern void coproc_pidchk PARAMS((pid_t, int));
108
109 extern void coproc_fdsave PARAMS((struct coproc *));
110 extern void coproc_fdrestore PARAMS((struct coproc *));
111
112 extern void coproc_setvars PARAMS((struct coproc *));
113 extern void coproc_unsetvars PARAMS((struct coproc *));
114
115 #if defined (PROCESS_SUBSTITUTION)
116 extern void close_all_files PARAMS((void));
117 #endif
118
119 #if defined (ARRAY_VARS)
120 extern void restore_funcarray_state PARAMS((struct func_array_state *));
121 #endif
122
123 #endif /* _EXECUTE_CMD_H_ */