1/* 2 * Copyright (c) 2010 Todd C. Miller <Todd.Miller@courtesan.com> 3 * 4 * Permission to use, copy, modify, and distribute this software for any 5 * purpose with or without fee is hereby granted, provided that the above 6 * copyright notice and this permission notice appear in all copies. 7 * 8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15 */ 16 17#ifndef _SUDO_EXEC_H 18#define _SUDO_EXEC_H 19 20/* 21 * Special values to indicate whether continuing in foreground or background. 22 */ 23#define SIGCONT_FG -2 24#define SIGCONT_BG -3 25 26/* 27 * Symbols shared between exec.c and exec_pty.c 28 */ 29 30/* exec.c */ 31int my_execve __P((const char *path, char *argv[], char *envp[])); 32int pipe_nonblock __P((int fds[2])); 33extern volatile pid_t cmnd_pid; 34 35/* exec_pty.c */ 36int fork_pty __P((const char *path, char *argv[], char *envp[], int sv[], 37 int rbac_enabled, int bgmode, int *maxfd, sigset_t *omask)); 38int perform_io __P((fd_set *fdsr, fd_set *fdsw, struct command_status *cstat)); 39int suspend_parent __P((int signo)); 40void fd_set_iobs __P((fd_set *fdsr, fd_set *fdsw)); 41#ifdef SA_SIGINFO 42RETSIGTYPE handler __P((int s, siginfo_t *info, void *context)); 43#else 44RETSIGTYPE handler __P((int s)); 45#endif 46void pty_close __P((struct command_status *cstat)); 47void pty_setup __P((uid_t uid)); 48extern int signal_pipe[2]; 49 50#endif /* _SUDO_EXEC_H */ 51