[funini.com] -> [kei@sodan] -> Kernel Reading

root/include/linux/signalfd.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. signalfd_notify
  2. signalfd_notify

/*
 *  include/linux/signalfd.h
 *
 *  Copyright (C) 2007  Davide Libenzi <davidel@xmailserver.org>
 *
 */

#ifndef _LINUX_SIGNALFD_H
#define _LINUX_SIGNALFD_H

/* For O_CLOEXEC and O_NONBLOCK */
#include <linux/fcntl.h>

/* Flags for signalfd4.  */
#define SFD_CLOEXEC O_CLOEXEC
#define SFD_NONBLOCK O_NONBLOCK

struct signalfd_siginfo {
        __u32 ssi_signo;
        __s32 ssi_errno;
        __s32 ssi_code;
        __u32 ssi_pid;
        __u32 ssi_uid;
        __s32 ssi_fd;
        __u32 ssi_tid;
        __u32 ssi_band;
        __u32 ssi_overrun;
        __u32 ssi_trapno;
        __s32 ssi_status;
        __s32 ssi_int;
        __u64 ssi_ptr;
        __u64 ssi_utime;
        __u64 ssi_stime;
        __u64 ssi_addr;

        /*
         * Pad strcture to 128 bytes. Remember to update the
         * pad size when you add new members. We use a fixed
         * size structure to avoid compatibility problems with
         * future versions, and we leave extra space for additional
         * members. We use fixed size members because this strcture
         * comes out of a read(2) and we really don't want to have
         * a compat on read(2).
         */
        __u8 __pad[48];
};


#ifdef __KERNEL__

#ifdef CONFIG_SIGNALFD

/*
 * Deliver the signal to listening signalfd.
 */
static inline void signalfd_notify(struct task_struct *tsk, int sig)
{
        if (unlikely(waitqueue_active(&tsk->sighand->signalfd_wqh)))
                wake_up(&tsk->sighand->signalfd_wqh);
}

#else /* CONFIG_SIGNALFD */

static inline void signalfd_notify(struct task_struct *tsk, int sig) { }

#endif /* CONFIG_SIGNALFD */

#endif /* __KERNEL__ */

#endif /* _LINUX_SIGNALFD_H */


/* [<][>][^][v][top][bottom][index][help] */

[funini.com] -> [kei@sodan] -> Kernel Reading