|  | /* | 
|  | * 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 |