source:sched_class
1103 struct sched_class {
1104 const struct sched_class *next;
1106 void (*enqueue_task) (struct rq *rq, struct task_struct *p, int flags);
1107 void (*dequeue_task) (struct rq *rq, struct task_struct *p, int flags);
1108 void (*yield_task) (struct rq *rq);
1109 bool (*yield_to_task) (struct rq *rq, struct task_struct *p, bool preempt);
1111 void (*check_preempt_curr) (struct rq *rq, struct task_struct *p, int flags);
1113
1121 struct task_struct * (*pick_next_task) (struct rq *rq,
1122 struct task_struct *prev);
1123 void (*put_prev_task) (struct rq *rq, struct task_struct *p);
1125 #ifdef CONFIG_SMP
1126 int (*select_task_rq)(struct task_struct *p, int task_cpu, int sd_flag, int flags);
1127 void (*migrate_task_rq)(struct task_struct *p, int next_cpu);
1129 void (*post_schedule) (struct rq *this_rq);
1130 void (*task_waking) (struct task_struct *task);
1131 void (*task_woken) (struct rq *this_rq, struct task_struct *task);
1133 void (*set_cpus_allowed)(struct task_struct *p,
1134 const struct cpumask *newmask);
1136 void (*rq_online)(struct rq *rq);
1137 void (*rq_offline)(struct rq *rq);
1138 #endif
1140 void (*set_curr_task) (struct rq *rq);
1141 void (*task_tick) (struct rq *rq, struct task_struct *p, int queued);
1142 void (*task_fork) (struct task_struct *p);
1143 void (*task_dead) (struct task_struct *p);
1145 void (*switched_from) (struct rq *this_rq, struct task_struct *task);
1146 void (*switched_to) (struct rq *this_rq, struct task_struct *task);
1147 void (*prio_changed) (struct rq *this_rq, struct task_struct *task,
1148 int oldprio);
1150 unsigned int (*get_rr_interval) (struct rq *rq,
1151 struct task_struct *task);
1153 #ifdef CONFIG_FAIR_GROUP_SCHED
1154 void (*task_move_group) (struct task_struct *p, int on_rq);
1155 #endif
1156 };
沒有留言:
張貼留言