OXIESEC PANEL
- Current Dir:
/
/
usr
/
src
/
linux-headers-4.15.0-213
/
include
/
linux
/
sched
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
05/09/2024 07:14:16 AM
rwxr-xr-x
📄
autogroup.h
1.2 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
clock.h
2.45 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
coredump.h
2.75 KB
06/16/2023 05:32:39 PM
rw-r--r--
📄
cpufreq.h
887 bytes
06/16/2023 05:32:39 PM
rw-r--r--
📄
cputime.h
5.13 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
deadline.h
597 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
debug.h
1.41 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
hotplug.h
578 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
idle.h
1.77 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
init.h
240 bytes
01/28/2018 09:20:33 PM
rw-r--r--
📄
isolation.h
1.33 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
jobctl.h
1.46 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
loadavg.h
1.17 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
mm.h
7.63 KB
06/16/2023 05:32:39 PM
rw-r--r--
📄
nohz.h
1.22 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
numa_balancing.h
1.26 KB
06/16/2023 05:32:39 PM
rw-r--r--
📄
prio.h
1.71 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
rt.h
1.41 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
signal.h
17.79 KB
06/16/2023 05:32:39 PM
rw-r--r--
📄
smt.h
415 bytes
06/16/2023 05:32:39 PM
rw-r--r--
📄
stat.h
1.02 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
sysctl.h
2.5 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
task.h
3.94 KB
06/16/2023 05:32:39 PM
rw-r--r--
📄
task_stack.h
3.03 KB
06/16/2023 05:32:39 PM
rw-r--r--
📄
topology.h
6.18 KB
06/16/2023 05:32:39 PM
rw-r--r--
📄
user.h
1.7 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
wake_q.h
1.79 KB
01/28/2018 09:20:33 PM
rw-r--r--
📄
xacct.h
854 bytes
01/28/2018 09:20:33 PM
rw-r--r--
Editing: wake_q.h
Close
/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _LINUX_SCHED_WAKE_Q_H #define _LINUX_SCHED_WAKE_Q_H /* * Wake-queues are lists of tasks with a pending wakeup, whose * callers have already marked the task as woken internally, * and can thus carry on. A common use case is being able to * do the wakeups once the corresponding user lock as been * released. * * We hold reference to each task in the list across the wakeup, * thus guaranteeing that the memory is still valid by the time * the actual wakeups are performed in wake_up_q(). * * One per task suffices, because there's never a need for a task to be * in two wake queues simultaneously; it is forbidden to abandon a task * in a wake queue (a call to wake_up_q() _must_ follow), so if a task is * already in a wake queue, the wakeup will happen soon and the second * waker can just skip it. * * The DEFINE_WAKE_Q macro declares and initializes the list head. * wake_up_q() does NOT reinitialize the list; it's expected to be * called near the end of a function. Otherwise, the list can be * re-initialized for later re-use by wake_q_init(). * * Note that this can cause spurious wakeups. schedule() callers * must ensure the call is done inside a loop, confirming that the * wakeup condition has in fact occurred. */ #include <linux/sched.h> struct wake_q_head { struct wake_q_node *first; struct wake_q_node **lastp; }; #define WAKE_Q_TAIL ((struct wake_q_node *) 0x01) #define DEFINE_WAKE_Q(name) \ struct wake_q_head name = { WAKE_Q_TAIL, &name.first } static inline void wake_q_init(struct wake_q_head *head) { head->first = WAKE_Q_TAIL; head->lastp = &head->first; } extern void wake_q_add(struct wake_q_head *head, struct task_struct *task); extern void wake_up_q(struct wake_q_head *head); #endif /* _LINUX_SCHED_WAKE_Q_H */