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