xref: /openbmc/linux/include/linux/signalfd.h (revision b2441318)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
2fba2afaaSDavide Libenzi /*
3fba2afaaSDavide Libenzi  *  include/linux/signalfd.h
4fba2afaaSDavide Libenzi  *
5fba2afaaSDavide Libenzi  *  Copyright (C) 2007  Davide Libenzi <davidel@xmailserver.org>
6fba2afaaSDavide Libenzi  *
7fba2afaaSDavide Libenzi  */
8fba2afaaSDavide Libenzi #ifndef _LINUX_SIGNALFD_H
9fba2afaaSDavide Libenzi #define _LINUX_SIGNALFD_H
10fba2afaaSDavide Libenzi 
11607ca46eSDavid Howells #include <uapi/linux/signalfd.h>
123f07c014SIngo Molnar #include <linux/sched/signal.h>
13fba2afaaSDavide Libenzi 
14fba2afaaSDavide Libenzi #ifdef CONFIG_SIGNALFD
15fba2afaaSDavide Libenzi 
16fba2afaaSDavide Libenzi /*
17b8fceee1SDavide Libenzi  * Deliver the signal to listening signalfd.
18fba2afaaSDavide Libenzi  */
signalfd_notify(struct task_struct * tsk,int sig)19fba2afaaSDavide Libenzi static inline void signalfd_notify(struct task_struct *tsk, int sig)
20fba2afaaSDavide Libenzi {
21b8fceee1SDavide Libenzi 	if (unlikely(waitqueue_active(&tsk->sighand->signalfd_wqh)))
22b8fceee1SDavide Libenzi 		wake_up(&tsk->sighand->signalfd_wqh);
23fba2afaaSDavide Libenzi }
24fba2afaaSDavide Libenzi 
25d80e731eSOleg Nesterov extern void signalfd_cleanup(struct sighand_struct *sighand);
26d80e731eSOleg Nesterov 
27fba2afaaSDavide Libenzi #else /* CONFIG_SIGNALFD */
28fba2afaaSDavide Libenzi 
signalfd_notify(struct task_struct * tsk,int sig)29b8fceee1SDavide Libenzi static inline void signalfd_notify(struct task_struct *tsk, int sig) { }
30fba2afaaSDavide Libenzi 
signalfd_cleanup(struct sighand_struct * sighand)31d80e731eSOleg Nesterov static inline void signalfd_cleanup(struct sighand_struct *sighand) { }
32d80e731eSOleg Nesterov 
33fba2afaaSDavide Libenzi #endif /* CONFIG_SIGNALFD */
34fba2afaaSDavide Libenzi 
35fba2afaaSDavide Libenzi #endif /* _LINUX_SIGNALFD_H */
36