diff options
| author | Zheng Da <zhengda1936@gmail.com> | 2009-12-06 05:26:23 +0100 |
|---|---|---|
| committer | Zheng Da <zhengda1936@gmail.com> | 2009-12-06 05:26:23 +0100 |
| commit | 8a6d48c0542876eb3acfc0970c0ab7872db08d5f (patch) | |
| tree | 496e78bc728317ea779781b92f897d16936ee231 /libdde_linux26/contrib/include/linux/signalfd.h | |
| parent | b4bffcfcdf3ab7a55d664e9aa5907f88da503f38 (diff) | |
check in the original version of dde linux26.
Diffstat (limited to 'libdde_linux26/contrib/include/linux/signalfd.h')
| -rw-r--r-- | libdde_linux26/contrib/include/linux/signalfd.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/libdde_linux26/contrib/include/linux/signalfd.h b/libdde_linux26/contrib/include/linux/signalfd.h new file mode 100644 index 00000000..b363b916 --- /dev/null +++ b/libdde_linux26/contrib/include/linux/signalfd.h @@ -0,0 +1,72 @@ +/* + * include/linux/signalfd.h + * + * Copyright (C) 2007 Davide Libenzi <davidel@xmailserver.org> + * + */ + +#ifndef _LINUX_SIGNALFD_H +#define _LINUX_SIGNALFD_H + +#include <linux/types.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 */ + |
