Added new runqueue
[projects/modsched/linux.git] / kernel / sched.new / sched.h
1 #include <linux/sched.h>
2 #include <linux/sched/sysctl.h>
3 #include <linux/sched/rt.h>
4
5 #include <linux/list.h>
6
7
8 struct task_group {
9 };
10
11 struct rq {
12         /* runqueue lock: */
13         raw_spinlock_t lock;
14
15         struct list_head rq_list;
16
17         /*
18          * nr_running and cpu_load should be in the same cacheline because
19          * remote CPUs use both these fields when doing load calculation.
20          */
21         unsigned int nr_running;
22
23
24         u64 nr_switches;
25
26         /*
27          * This is part of a global counter where only the total sum
28          * over all CPUs matters. A task can increase this counter on
29          * one CPU and if it got migrated afterwards it may decrease
30          * it on another CPU. Always updated under the runqueue lock:
31          */
32         unsigned long nr_uninterruptible;
33
34         struct task_struct *curr, *idle, *stop;
35
36         struct mm_struct *prev_mm;
37 };
38
39 DECLARE_PER_CPU(struct rq, runqueues);
40
41 #define cpu_rq(cpu)             (&per_cpu(runqueues, (cpu)))
42
43 void account_idle_ticks(unsigned long ticks);
44
45 void account_process_tick(struct task_struct *p, int user_tick);
46
47 void get_avenrun(unsigned long *loads, unsigned long offset, int shift);
48
49 void calc_global_load(unsigned long ticks);
50
51 //void calc_load_enter_idle(void);
52
53 //void calc_load_exit_idle(void);
54
55 int can_nice(const struct task_struct *p, const int nice);
56
57 int idle_cpu(int cpu);
58
59 void __cpuinit init_idle(struct task_struct *idle, int cpu);
60
61 void __cpuinit init_idle_bootup_task(struct task_struct *idle);
62
63 void normalize_rt_tasks(void);
64
65 unsigned long nr_running(void);
66
67 unsigned long long nr_context_switches(void);
68
69 unsigned long nr_iowait(void);
70
71 void rt_mutex_setprio(struct task_struct *p, int prio);
72
73 u64 sched_clock_cpu(int cpu);
74
75 void sched_clock_init(void);;
76
77 void sched_fork(struct task_struct *p);
78
79 long sched_getaffinity(pid_t pid, struct cpumask *mask);
80
81 void sched_init(void);
82
83 void sched_init_smp(void);
84
85 int sched_rr_handler(struct ctl_table *table, int write, void __user *buffer, size_t *lenp, loff_t *ppos);
86
87 long sched_setaffinity(pid_t pid, const struct cpumask *new_mask);
88
89 int sched_setscheduler(struct task_struct *p, int policy, const struct sched_param *param);
90
91 void sched_show_task(struct task_struct *p);
92
93 void schedule_tail(struct task_struct *prev);
94
95 void scheduler_tick(void);
96
97 long sys_nice(int increment);
98
99 long sys_sched_getaffinity(pid_t pid, unsigned int len, unsigned long __user *user_mask_ptr);
100
101 long sys_sched_setaffinity(pid_t pid, unsigned int len, unsigned long __user *user_mask_ptr);
102
103 unsigned long long task_delta_exec(struct task_struct *);
104
105 int task_prio(const struct task_struct *p);
106
107 unsigned long long task_sched_runtime(struct task_struct *task);
108
109 unsigned long this_cpu_load(void);
110
111 void update_cpu_load_nohz(void);
112
113 void wake_up_new_task(struct task_struct *tsk);
114
115
116 int __sched _cond_resched(void);
117
118 asmlinkage void __sched schedule(void);
119
120 void __wake_up(wait_queue_head_t *q, unsigned int mode, int nr_exclusive, void *key);
121
122 int wake_up_process(struct task_struct *p);
123
124 void __sched wait_for_completion(struct completion *x);
125
126 void complete(struct completion *x);
127
128 void __sched schedule_preempt_disabled(void);
129
130 int in_sched_functions(unsigned long addr);
131
132 void sched_clock_idle_sleep_event(void);
133
134 void sched_clock_idle_wakeup_event(u64 delta_ns);
135
136 int __cond_resched_lock(spinlock_t *lock);
137
138 u64 local_clock(void);
139
140 int default_wake_function(wait_queue_t *curr, unsigned mode, int wake_flags,
141                           void *key);
142
143 int __sched wait_for_completion_killable(struct completion *x);
144
145 void __wake_up_sync_key(wait_queue_head_t *q, unsigned int mode,
146                         int nr_exclusive, void *key);
147
148 int wake_up_state(struct task_struct *p, unsigned int state);
149
150 void __sched yield(void);
151
152 inline int task_curr(const struct task_struct *p);
153
154 int task_nice(const struct task_struct *p);
155
156 void set_user_nice(struct task_struct *p, long nice);
157
158 void __wake_up_locked_key(wait_queue_head_t *q, unsigned int mode, void *key);
159
160 void __wake_up_sync(wait_queue_head_t *q, unsigned int mode, int nr_exclusive);
161
162 void __wake_up_locked(wait_queue_head_t *q, unsigned int mode, int nr);
163