]>
Commit | Line | Data |
---|---|---|
726f6388 JA |
1 | /* execute_cmd.h - functions from execute_cmd.c. */ |
2 | ||
d233b485 | 3 | /* Copyright (C) 1993-2017 Free Software Foundation, Inc. |
726f6388 JA |
4 | |
5 | This file is part of GNU Bash, the Bourne Again SHell. | |
6 | ||
3185942a JA |
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. | |
726f6388 | 11 | |
3185942a JA |
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. | |
726f6388 | 16 | |
3185942a JA |
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 | */ | |
726f6388 JA |
20 | |
21 | #if !defined (_EXECUTE_CMD_H_) | |
22 | #define _EXECUTE_CMD_H_ | |
23 | ||
24 | #include "stdc.h" | |
25 | ||
a0c0a00f CR |
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 | ||
d233b485 CR |
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 | ||
8868edaf | 47 | /* Variables declared in execute_cmd.c, used by many other files */ |
d233b485 CR |
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 | ||
8868edaf | 70 | /* Functions declared in execute_cmd.c, used by many other files */ |
d233b485 | 71 | |
8868edaf CR |
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)); | |
d233b485 | 81 | |
8868edaf CR |
82 | extern void undo_partial_redirects PARAMS((void)); |
83 | extern void dispose_partial_redirects PARAMS((void)); | |
84 | extern void dispose_exec_redirects PARAMS((void)); | |
726f6388 | 85 | |
8868edaf | 86 | extern int execute_shell_function PARAMS((SHELL_VAR *, WORD_LIST *)); |
bb70624e | 87 | |
8868edaf CR |
88 | extern struct coproc *getcoprocbypid PARAMS((pid_t)); |
89 | extern struct coproc *getcoprocbyname PARAMS((const char *)); | |
3185942a | 90 | |
8868edaf CR |
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)); | |
3185942a | 99 | |
8868edaf CR |
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)); | |
3185942a | 103 | |
8868edaf CR |
104 | extern void coproc_checkfd PARAMS((struct coproc *, int)); |
105 | extern void coproc_fdchk PARAMS((int)); | |
3185942a | 106 | |
8868edaf | 107 | extern void coproc_pidchk PARAMS((pid_t, int)); |
3185942a | 108 | |
8868edaf CR |
109 | extern void coproc_fdsave PARAMS((struct coproc *)); |
110 | extern void coproc_fdrestore PARAMS((struct coproc *)); | |
3185942a | 111 | |
8868edaf CR |
112 | extern void coproc_setvars PARAMS((struct coproc *)); |
113 | extern void coproc_unsetvars PARAMS((struct coproc *)); | |
3185942a | 114 | |
726f6388 | 115 | #if defined (PROCESS_SUBSTITUTION) |
8868edaf | 116 | extern void close_all_files PARAMS((void)); |
726f6388 JA |
117 | #endif |
118 | ||
a0c0a00f | 119 | #if defined (ARRAY_VARS) |
8868edaf | 120 | extern void restore_funcarray_state PARAMS((struct func_array_state *)); |
a0c0a00f CR |
121 | #endif |
122 | ||
726f6388 | 123 | #endif /* _EXECUTE_CMD_H_ */ |