28 #include <sys/types.h>
29 #include <sys/socket.h>
91 if (fcntl (err_pdes[0], F_SETFL, O_NONBLOCK) == -1)
95 err_pdes[0] = err_pdes[1] = -1;
103 pid_t sid = setsid ();
105 signal (SIGINT, SIG_IGN);
107 signal (SIGINT, SIG_IGN);
112 if (pdes[1] != STDOUT_FILENO)
114 dup2 (pdes[1], STDOUT_FILENO);
117 dup2 (STDOUT_FILENO, STDIN_FILENO);
119 if (err_pdes[0] != -1)
122 dup2 (err_pdes[1], STDERR_FILENO);
127 execl (
"/bin/sh",
"sh",
"-c", name, (
char *) 0);
133 if (err_pdes[1] != -1)
143 signal (SIGPIPE, SIG_IGN);
162 #define PIPE_CLOSE_TIMEOUT 5
167 #define SIGTERM_TIMEOUT INT_MAX
174 if (wait_result == -1)
176 kill (state->
pid, SIGTERM);
203 signal (SIGPIPE, SIG_IGN);
pid_t wait_to_die_with_timeout(pid_t pid, int *status, int timeout)
int ser_base_set_tty_state(struct serial *scb, serial_ttystate ttystate)
static void pipe_close(struct serial *scb)
int ser_base_flush_output(struct serial *scb)
int gdb_pipe(int pdes[2])
int ser_base_setbaudrate(struct serial *scb, int rate)
int ser_unix_write_prim(struct serial *scb, const void *buf, size_t len)
int gdb_socketpair_cloexec(int domain, int style, int protocol, int filedes[2])
int ser_base_setstopbits(struct serial *scb, int num)
int ser_unix_read_prim(struct serial *scb, size_t count)
void ser_base_raw(struct serial *scb)
void ser_base_async(struct serial *scb, int async_p)
mach_port_t mach_port_t name mach_port_t mach_port_t name error_t int status
int ser_base_noflush_set_tty_state(struct serial *scb, serial_ttystate new_ttystate, serial_ttystate old_ttystate)
int ser_base_drain_output(struct serial *scb)
void close_most_fds(void)
void ser_base_print_tty_state(struct serial *scb, serial_ttystate ttystate, struct ui_file *stream)
#define PIPE_CLOSE_TIMEOUT
int ser_base_setparity(struct serial *scb, int parity)
void serial_add_interface(const struct serial_ops *optable)
int ser_base_flush_input(struct serial *scb)
int ser_base_readchar(struct serial *scb, int timeout)
int ser_base_send_break(struct serial *scb)
int ser_base_write(struct serial *scb, const void *buf, size_t count)
serial_ttystate ser_base_copy_tty_state(struct serial *scb, serial_ttystate ttystate)
static int pipe_open(struct serial *scb, const char *name)
void _initialize_ser_pipe(void)
mach_port_t mach_port_t name mach_port_t mach_port_t name error_t int int rusage_t pid_t pid
serial_ttystate ser_base_get_tty_state(struct serial *scb)