/* execute_cmd.h - functions from execute_cmd.c. */ /* Copyright (C) 1993-2017 Free Software Foundation, Inc. This file is part of GNU Bash, the Bourne Again SHell. Bash is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. Bash 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 General Public License for more details. You should have received a copy of the GNU General Public License along with Bash. If not, see . */ #if !defined (_EXECUTE_CMD_H_) #define _EXECUTE_CMD_H_ #include "stdc.h" #if defined (ARRAY_VARS) struct func_array_state { ARRAY *funcname_a; SHELL_VAR *funcname_v; ARRAY *source_a; SHELL_VAR *source_v; ARRAY *lineno_a; SHELL_VAR *lineno_v; }; #endif /* Placeholder for later expansion to include more execution state */ /* XXX - watch out for pid_t */ struct execstate { pid_t pid; int subshell_env; }; /* Variables declared in execute_cmd.c, used by many other files */ extern int return_catch_flag; extern int return_catch_value; extern volatile int last_command_exit_value; extern int last_command_exit_signal; extern int builtin_ignoring_errexit; extern int executing_builtin; extern int executing_list; extern int comsub_ignore_return; extern int subshell_level; extern int match_ignore_case; extern int executing_command_builtin; extern int funcnest, funcnest_max; extern int evalnest, evalnest_max; extern int sourcenest, sourcenest_max; extern int stdin_redir; extern int line_number_for_err_trap; extern char *the_printed_command_except_trap; extern char *this_command_name; extern SHELL_VAR *this_shell_function; /* Functions declared in execute_cmd.c, used by many other files */ extern struct fd_bitmap *new_fd_bitmap PARAMS((int)); extern void dispose_fd_bitmap PARAMS((struct fd_bitmap *)); extern void close_fd_bitmap PARAMS((struct fd_bitmap *)); extern int executing_line_number PARAMS((void)); extern int execute_command PARAMS((COMMAND *)); extern int execute_command_internal PARAMS((COMMAND *, int, int, int, struct fd_bitmap *)); extern int shell_execve PARAMS((char *, char **, char **)); extern void setup_async_signals PARAMS((void)); extern void async_redirect_stdin PARAMS((void)); extern void undo_partial_redirects PARAMS((void)); extern void dispose_partial_redirects PARAMS((void)); extern void dispose_exec_redirects PARAMS((void)); extern int execute_shell_function PARAMS((SHELL_VAR *, WORD_LIST *)); extern struct coproc *getcoprocbypid PARAMS((pid_t)); extern struct coproc *getcoprocbyname PARAMS((const char *)); extern void coproc_init PARAMS((struct coproc *)); extern struct coproc *coproc_alloc PARAMS((char *, pid_t)); extern void coproc_dispose PARAMS((struct coproc *)); extern void coproc_flush PARAMS((void)); extern void coproc_close PARAMS((struct coproc *)); extern void coproc_closeall PARAMS((void)); extern void coproc_reap PARAMS((void)); extern pid_t coproc_active PARAMS((void)); extern void coproc_rclose PARAMS((struct coproc *, int)); extern void coproc_wclose PARAMS((struct coproc *, int)); extern void coproc_fdclose PARAMS((struct coproc *, int)); extern void coproc_checkfd PARAMS((struct coproc *, int)); extern void coproc_fdchk PARAMS((int)); extern void coproc_pidchk PARAMS((pid_t, int)); extern void coproc_fdsave PARAMS((struct coproc *)); extern void coproc_fdrestore PARAMS((struct coproc *)); extern void coproc_setvars PARAMS((struct coproc *)); extern void coproc_unsetvars PARAMS((struct coproc *)); #if defined (PROCESS_SUBSTITUTION) extern void close_all_files PARAMS((void)); #endif #if defined (ARRAY_VARS) extern void restore_funcarray_state PARAMS((struct func_array_state *)); #endif #endif /* _EXECUTE_CMD_H_ */