qemu-e2k/include/qemu
Daniel P. Berrange 57cb38b383 osdep: add qemu_fork() wrapper for safely handling signals
When using regular fork() the child process of course inherits
all the parents' signal handlers. If the child then proceeds
to close() any open file descriptors, it may break some of those
registered signal handlers. The child generally does not want to
ever run any of the signal handlers that the parent may have
installed in the short time before it exec's. The parent may also
have blocked various signals which the child process will want
enabled.

This introduces a wrapper qemu_fork() that takes care to sanitize
signal handling across fork. Before forking it blocks all signals
in the parent thread. After fork returns, the parent unblocks the
signals and carries on as usual. The child, however, resets all the
signal handlers back to their defaults before it unblocks signals.
The child process can now exec the binary in a "clean" signal
environment.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2015-10-20 14:40:49 +01:00
..
acl.h misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
atomic.h atomics: add explicit compiler fence in __atomic memory barriers 2015-06-05 19:45:13 +02:00
bitmap.h bitmap: add atomic test and clear 2015-06-05 17:10:00 +02:00
bitops.h bitmap: add atomic set functions 2015-06-05 17:10:00 +02:00
bswap.h cpu_ldst.h, cpu-all.h, bswap.h: Update documentation on ld/st accessors 2015-01-20 15:19:35 +00:00
compatfd.h util: Remove unused functions 2015-04-30 16:05:48 +03:00
compiler.h compiler.h: Use glue() in QEMU_BUILD_BUG_ON define 2015-08-19 16:29:53 +01:00
config-file.h qemu-option: introduce qemu_find_opts_singleton 2014-04-27 13:04:18 +04:00
crc32c.h include/qemu/crc32c.h: Rename include guards to match filename 2014-02-26 17:20:07 +00:00
envlist.h misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
error-report.h qemu-error: Add error_vreport() 2014-10-09 15:36:15 +02:00
event_notifier.h misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
fifo8.h util/fifo8: implement push/pop of multiple bytes 2014-02-08 14:50:48 +00:00
fprintf-fn.h Stop including qemu-common.h in memory.h 2015-07-06 14:59:09 +02:00
hbitmap.h util/hbitmap: Add an API to reset all set bits in hbitmap 2015-06-23 15:06:16 +01:00
host-utils.h host-utils: Add revbit functions 2015-09-15 07:45:33 -07:00
int128.h int128: Add int128_exts64() 2014-05-30 13:00:28 -06:00
iov.h iov: don't touch iov in iov_send_recv() 2015-06-23 16:05:34 +01:00
log.h disas: Remove uses of CPU env 2015-06-22 17:40:01 +02:00
main-loop.h iohandler: Use aio API 2015-09-07 18:14:03 +02:00
module.h module: implement module loading 2014-02-20 13:14:18 +01:00
notify.h notify: add NotiferWithReturn so notifier list can abort 2013-06-28 09:20:26 +02:00
option.h typedef: add typedef for QemuOpts 2015-09-25 12:04:45 +02:00
option_int.h QemuOpts: change opt->name|str from (const char *) to (char *) 2014-06-16 17:23:20 +08:00
osdep.h osdep: add qemu_fork() wrapper for safely handling signals 2015-10-20 14:40:49 +01:00
queue.h block: Remove bdrv_swap() 2015-10-16 15:34:30 +02:00
range.h Introduce signed range. 2014-06-19 18:44:19 +03:00
ratelimit.h aio / timers: Switch entire codebase to the new timer API 2013-08-22 19:14:24 +02:00
rcu.h rcu: fix comment with s/rcu_gp_lock/rcu_registry_lock/ 2015-09-09 15:34:54 +02:00
rcu_queue.h rcu: introduce RCU-enabled QLIST 2015-02-16 17:30:19 +01:00
readline.h readline: Add missing GCC_FMT_ATTR 2014-02-01 13:46:06 +04:00
rfifolock.h rfifolock: add recursive FIFO lock 2014-03-13 14:42:21 +01:00
seqlock.h seqlock: read sequence number atomically 2015-09-07 18:12:39 +02:00
sockets.h sockets: move qapi_copy_SocketAddress into qemu-sockets.c 2015-10-20 14:15:48 +01:00
thread-posix.h qemu-thread: add QemuEvent 2013-10-17 17:30:55 +02:00
thread-win32.h qemu-thread: add a fast path to the Win32 QemuEvent 2015-09-24 20:52:28 +02:00
thread.h rcu: add rcu library 2015-02-02 16:55:10 +01:00
throttle.h throttle: refuse bps_max/iops_max without bps/iops 2015-08-05 12:53:48 +01:00
timer.h s/cpu_get_real_ticks/cpu_get_host_ticks/ 2015-10-08 19:46:01 +03:00
typedefs.h exec.c: Collect AddressSpace related fields into a CPUAddressSpace struct 2015-10-12 18:29:26 +02:00
uri.h misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00
xattr.h misc: move include files to include/qemu/ 2012-12-19 08:32:39 +01:00