| /* |
| * signalfd/eventfd compatibility |
| * |
| * Copyright IBM, Corp. 2008 |
| * |
| * Authors: |
| * Anthony Liguori <aliguori@us.ibm.com> |
| * |
| * This work is licensed under the terms of the GNU GPL, version 2. See |
| * the COPYING file in the top-level directory. |
| * |
| */ |
| |
| #ifndef QEMU_COMPATFD_H |
| #define QEMU_COMPATFD_H |
| |
| #include <signal.h> |
| |
| struct qemu_signalfd_siginfo { |
| uint32_t ssi_signo; /* Signal number */ |
| int32_t ssi_errno; /* Error number (unused) */ |
| int32_t ssi_code; /* Signal code */ |
| uint32_t ssi_pid; /* PID of sender */ |
| uint32_t ssi_uid; /* Real UID of sender */ |
| int32_t ssi_fd; /* File descriptor (SIGIO) */ |
| uint32_t ssi_tid; /* Kernel timer ID (POSIX timers) */ |
| uint32_t ssi_band; /* Band event (SIGIO) */ |
| uint32_t ssi_overrun; /* POSIX timer overrun count */ |
| uint32_t ssi_trapno; /* Trap number that caused signal */ |
| int32_t ssi_status; /* Exit status or signal (SIGCHLD) */ |
| int32_t ssi_int; /* Integer sent by sigqueue(2) */ |
| uint64_t ssi_ptr; /* Pointer sent by sigqueue(2) */ |
| uint64_t ssi_utime; /* User CPU time consumed (SIGCHLD) */ |
| uint64_t ssi_stime; /* System CPU time consumed (SIGCHLD) */ |
| uint64_t ssi_addr; /* Address that generated signal |
| (for hardware-generated signals) */ |
| uint8_t pad[48]; /* Pad size to 128 bytes (allow for |
| additional fields in the future) */ |
| }; |
| |
| int qemu_signalfd(const sigset_t *mask); |
| bool qemu_signalfd_available(void); |
| |
| #endif |