root / compatfd.h @ cb9c377f
History | View | Annotate | Download (1.5 kB)
1 | dcc38d1c | Marcelo Tosatti | /*
|
---|---|---|---|
2 | dcc38d1c | Marcelo Tosatti | * signalfd/eventfd compatibility
|
3 | dcc38d1c | Marcelo Tosatti | *
|
4 | dcc38d1c | Marcelo Tosatti | * Copyright IBM, Corp. 2008
|
5 | dcc38d1c | Marcelo Tosatti | *
|
6 | dcc38d1c | Marcelo Tosatti | * Authors:
|
7 | dcc38d1c | Marcelo Tosatti | * Anthony Liguori <aliguori@us.ibm.com>
|
8 | dcc38d1c | Marcelo Tosatti | *
|
9 | dcc38d1c | Marcelo Tosatti | * This work is licensed under the terms of the GNU GPL, version 2. See
|
10 | dcc38d1c | Marcelo Tosatti | * the COPYING file in the top-level directory.
|
11 | dcc38d1c | Marcelo Tosatti | *
|
12 | dcc38d1c | Marcelo Tosatti | */
|
13 | dcc38d1c | Marcelo Tosatti | |
14 | dcc38d1c | Marcelo Tosatti | #ifndef QEMU_COMPATFD_H
|
15 | dcc38d1c | Marcelo Tosatti | #define QEMU_COMPATFD_H
|
16 | dcc38d1c | Marcelo Tosatti | |
17 | dcc38d1c | Marcelo Tosatti | #include <signal.h> |
18 | dcc38d1c | Marcelo Tosatti | |
19 | dcc38d1c | Marcelo Tosatti | struct qemu_signalfd_siginfo {
|
20 | dcc38d1c | Marcelo Tosatti | uint32_t ssi_signo; /* Signal number */
|
21 | dcc38d1c | Marcelo Tosatti | int32_t ssi_errno; /* Error number (unused) */
|
22 | dcc38d1c | Marcelo Tosatti | int32_t ssi_code; /* Signal code */
|
23 | dcc38d1c | Marcelo Tosatti | uint32_t ssi_pid; /* PID of sender */
|
24 | dcc38d1c | Marcelo Tosatti | uint32_t ssi_uid; /* Real UID of sender */
|
25 | dcc38d1c | Marcelo Tosatti | int32_t ssi_fd; /* File descriptor (SIGIO) */
|
26 | dcc38d1c | Marcelo Tosatti | uint32_t ssi_tid; /* Kernel timer ID (POSIX timers) */
|
27 | dcc38d1c | Marcelo Tosatti | uint32_t ssi_band; /* Band event (SIGIO) */
|
28 | dcc38d1c | Marcelo Tosatti | uint32_t ssi_overrun; /* POSIX timer overrun count */
|
29 | dcc38d1c | Marcelo Tosatti | uint32_t ssi_trapno; /* Trap number that caused signal */
|
30 | dcc38d1c | Marcelo Tosatti | int32_t ssi_status; /* Exit status or signal (SIGCHLD) */
|
31 | dcc38d1c | Marcelo Tosatti | int32_t ssi_int; /* Integer sent by sigqueue(2) */
|
32 | dcc38d1c | Marcelo Tosatti | uint64_t ssi_ptr; /* Pointer sent by sigqueue(2) */
|
33 | dcc38d1c | Marcelo Tosatti | uint64_t ssi_utime; /* User CPU time consumed (SIGCHLD) */
|
34 | dcc38d1c | Marcelo Tosatti | uint64_t ssi_stime; /* System CPU time consumed (SIGCHLD) */
|
35 | dcc38d1c | Marcelo Tosatti | uint64_t ssi_addr; /* Address that generated signal
|
36 | dcc38d1c | Marcelo Tosatti | (for hardware-generated signals) */
|
37 | dcc38d1c | Marcelo Tosatti | uint8_t pad[48]; /* Pad size to 128 bytes (allow for |
38 | dcc38d1c | Marcelo Tosatti | additional fields in the future) */
|
39 | dcc38d1c | Marcelo Tosatti | }; |
40 | dcc38d1c | Marcelo Tosatti | |
41 | dcc38d1c | Marcelo Tosatti | int qemu_signalfd(const sigset_t *mask); |
42 | d25f89c9 | Jan Kiszka | bool qemu_signalfd_available(void); |
43 | dcc38d1c | Marcelo Tosatti | |
44 | dcc38d1c | Marcelo Tosatti | #endif |