2 * ion/libmainloop/exec.h
4 * Copyright (c) Tuomo Valkonen 1999-2007.
6 * See the included file LICENSE for details.
9 #ifndef ION_LIBMAINLOOP_EXEC_H
10 #define ION_LIBMAINLOOP_EXEC_H
12 #include <sys/types.h>
15 #include <libextl/extl.h>
17 extern void mainloop_do_exec(const char *cmd);
18 extern pid_t mainloop_fork(void (*fn)(void *p), void *p,
19 int *infd, int *outfd, int *errfd);
20 extern pid_t mainloop_do_spawn(const char *cmd,
21 void (*initenv)(void *p), void *p,
22 int *infd, int *outfd, int *errfd);
23 extern pid_t mainloop_spawn(const char *cmd);
25 extern pid_t mainloop_popen_bgread(const char *cmd,
26 void (*initenv)(void *p), void *p,
27 ExtlFn handler, ExtlFn errhandler);
29 extern bool mainloop_register_input_fd_extlfn(int fd, ExtlFn fn);
30 extern bool mainloop_process_pipe_extlfn(int fd, ExtlFn fn);
32 extern void cloexec_braindamage_fix(int fd);
34 #endif /* ION_LIBMAINLOOP_EXEC_H */