typedef struct siginfo {
  int si_signo;
  int si_errno;
  int si_code;

  union {
    ...
  } _sifields;
} siginfo_t;

#define si_pid   _sifields._kill._pid
...
#define si_int   _sifields._rt._sigval.sival_int
...