aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/sched.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/sched.h')
-rw-r--r--include/linux/sched.h19
1 files changed, 14 insertions, 5 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 8478f334d732..55e30d114477 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -247,6 +247,7 @@ extern void init_idle(struct task_struct *idle, int cpu);
247extern void init_idle_bootup_task(struct task_struct *idle); 247extern void init_idle_bootup_task(struct task_struct *idle);
248 248
249extern int runqueue_is_locked(void); 249extern int runqueue_is_locked(void);
250extern void task_rq_unlock_wait(struct task_struct *p);
250 251
251extern cpumask_t nohz_cpu_mask; 252extern cpumask_t nohz_cpu_mask;
252#if defined(CONFIG_SMP) && defined(CONFIG_NO_HZ) 253#if defined(CONFIG_SMP) && defined(CONFIG_NO_HZ)
@@ -629,6 +630,10 @@ struct user_struct {
629 atomic_t inotify_watches; /* How many inotify watches does this user have? */ 630 atomic_t inotify_watches; /* How many inotify watches does this user have? */
630 atomic_t inotify_devs; /* How many inotify devs does this user have opened? */ 631 atomic_t inotify_devs; /* How many inotify devs does this user have opened? */
631#endif 632#endif
633#ifdef CONFIG_EPOLL
634 atomic_t epoll_devs; /* The number of epoll descriptors currently open */
635 atomic_t epoll_watches; /* The number of file descriptors currently watched */
636#endif
632#ifdef CONFIG_POSIX_MQUEUE 637#ifdef CONFIG_POSIX_MQUEUE
633 /* protected by mq_lock */ 638 /* protected by mq_lock */
634 unsigned long mq_bytes; /* How many bytes can be allocated to mqueue? */ 639 unsigned long mq_bytes; /* How many bytes can be allocated to mqueue? */
@@ -936,7 +941,6 @@ struct sched_class {
936 void (*enqueue_task) (struct rq *rq, struct task_struct *p, int wakeup); 941 void (*enqueue_task) (struct rq *rq, struct task_struct *p, int wakeup);
937 void (*dequeue_task) (struct rq *rq, struct task_struct *p, int sleep); 942 void (*dequeue_task) (struct rq *rq, struct task_struct *p, int sleep);
938 void (*yield_task) (struct rq *rq); 943 void (*yield_task) (struct rq *rq);
939 int (*select_task_rq)(struct task_struct *p, int sync);
940 944
941 void (*check_preempt_curr) (struct rq *rq, struct task_struct *p, int sync); 945 void (*check_preempt_curr) (struct rq *rq, struct task_struct *p, int sync);
942 946
@@ -944,6 +948,8 @@ struct sched_class {
944 void (*put_prev_task) (struct rq *rq, struct task_struct *p); 948 void (*put_prev_task) (struct rq *rq, struct task_struct *p);
945 949
946#ifdef CONFIG_SMP 950#ifdef CONFIG_SMP
951 int (*select_task_rq)(struct task_struct *p, int sync);
952
947 unsigned long (*load_balance) (struct rq *this_rq, int this_cpu, 953 unsigned long (*load_balance) (struct rq *this_rq, int this_cpu,
948 struct rq *busiest, unsigned long max_load_move, 954 struct rq *busiest, unsigned long max_load_move,
949 struct sched_domain *sd, enum cpu_idle_type idle, 955 struct sched_domain *sd, enum cpu_idle_type idle,
@@ -955,16 +961,17 @@ struct sched_class {
955 void (*pre_schedule) (struct rq *this_rq, struct task_struct *task); 961 void (*pre_schedule) (struct rq *this_rq, struct task_struct *task);
956 void (*post_schedule) (struct rq *this_rq); 962 void (*post_schedule) (struct rq *this_rq);
957 void (*task_wake_up) (struct rq *this_rq, struct task_struct *task); 963 void (*task_wake_up) (struct rq *this_rq, struct task_struct *task);
958#endif
959 964
960 void (*set_curr_task) (struct rq *rq);
961 void (*task_tick) (struct rq *rq, struct task_struct *p, int queued);
962 void (*task_new) (struct rq *rq, struct task_struct *p);
963 void (*set_cpus_allowed)(struct task_struct *p, 965 void (*set_cpus_allowed)(struct task_struct *p,
964 const cpumask_t *newmask); 966 const cpumask_t *newmask);
965 967
966 void (*rq_online)(struct rq *rq); 968 void (*rq_online)(struct rq *rq);
967 void (*rq_offline)(struct rq *rq); 969 void (*rq_offline)(struct rq *rq);
970#endif
971
972 void (*set_curr_task) (struct rq *rq);
973 void (*task_tick) (struct rq *rq, struct task_struct *p, int queued);
974 void (*task_new) (struct rq *rq, struct task_struct *p);
968 975
969 void (*switched_from) (struct rq *this_rq, struct task_struct *task, 976 void (*switched_from) (struct rq *this_rq, struct task_struct *task,
970 int running); 977 int running);
@@ -1347,6 +1354,8 @@ struct task_struct {
1347 */ 1354 */
1348 unsigned long timer_slack_ns; 1355 unsigned long timer_slack_ns;
1349 unsigned long default_timer_slack_ns; 1356 unsigned long default_timer_slack_ns;
1357
1358 struct list_head *scm_work_list;
1350}; 1359};
1351 1360
1352/* 1361/*