diff options
Diffstat (limited to 'kernel/sched.c')
| -rw-r--r-- | kernel/sched.c | 70 |
1 files changed, 44 insertions, 26 deletions
diff --git a/kernel/sched.c b/kernel/sched.c index e9ff04a9b56d..81b3a96ed2d0 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
| @@ -3577,32 +3577,6 @@ task_t *idle_task(int cpu) | |||
| 3577 | } | 3577 | } |
| 3578 | 3578 | ||
| 3579 | /** | 3579 | /** |
| 3580 | * curr_task - return the current task for a given cpu. | ||
| 3581 | * @cpu: the processor in question. | ||
| 3582 | */ | ||
| 3583 | task_t *curr_task(int cpu) | ||
| 3584 | { | ||
| 3585 | return cpu_curr(cpu); | ||
| 3586 | } | ||
| 3587 | |||
| 3588 | /** | ||
| 3589 | * set_curr_task - set the current task for a given cpu. | ||
| 3590 | * @cpu: the processor in question. | ||
| 3591 | * @p: the task pointer to set. | ||
| 3592 | * | ||
| 3593 | * Description: This function must only be used when non-maskable interrupts | ||
| 3594 | * are serviced on a separate stack. It allows the architecture to switch the | ||
| 3595 | * notion of the current task on a cpu in a non-blocking manner. This function | ||
| 3596 | * must be called with interrupts disabled, the caller must save the original | ||
| 3597 | * value of the current task (see curr_task() above) and restore that value | ||
| 3598 | * before reenabling interrupts. | ||
| 3599 | */ | ||
| 3600 | void set_curr_task(int cpu, task_t *p) | ||
| 3601 | { | ||
| 3602 | cpu_curr(cpu) = p; | ||
| 3603 | } | ||
| 3604 | |||
| 3605 | /** | ||
| 3606 | * find_process_by_pid - find a process with a matching PID value. | 3580 | * find_process_by_pid - find a process with a matching PID value. |
| 3607 | * @pid: the pid in question. | 3581 | * @pid: the pid in question. |
| 3608 | */ | 3582 | */ |
| @@ -5628,3 +5602,47 @@ void normalize_rt_tasks(void) | |||
| 5628 | } | 5602 | } |
| 5629 | 5603 | ||
| 5630 | #endif /* CONFIG_MAGIC_SYSRQ */ | 5604 | #endif /* CONFIG_MAGIC_SYSRQ */ |
| 5605 | |||
| 5606 | #ifdef CONFIG_IA64 | ||
| 5607 | /* | ||
| 5608 | * These functions are only useful for the IA64 MCA handling. | ||
| 5609 | * | ||
| 5610 | * They can only be called when the whole system has been | ||
| 5611 | * stopped - every CPU needs to be quiescent, and no scheduling | ||
| 5612 | * activity can take place. Using them for anything else would | ||
| 5613 | * be a serious bug, and as a result, they aren't even visible | ||
| 5614 | * under any other configuration. | ||
| 5615 | */ | ||
| 5616 | |||
| 5617 | /** | ||
| 5618 | * curr_task - return the current task for a given cpu. | ||
| 5619 | * @cpu: the processor in question. | ||
| 5620 | * | ||
| 5621 | * ONLY VALID WHEN THE WHOLE SYSTEM IS STOPPED! | ||
| 5622 | */ | ||
| 5623 | task_t *curr_task(int cpu) | ||
| 5624 | { | ||
| 5625 | return cpu_curr(cpu); | ||
| 5626 | } | ||
| 5627 | |||
| 5628 | /** | ||
| 5629 | * set_curr_task - set the current task for a given cpu. | ||
| 5630 | * @cpu: the processor in question. | ||
| 5631 | * @p: the task pointer to set. | ||
| 5632 | * | ||
| 5633 | * Description: This function must only be used when non-maskable interrupts | ||
| 5634 | * are serviced on a separate stack. It allows the architecture to switch the | ||
| 5635 | * notion of the current task on a cpu in a non-blocking manner. This function | ||
| 5636 | * must be called with all CPU's synchronized, and interrupts disabled, the | ||
| 5637 | * and caller must save the original value of the current task (see | ||
| 5638 | * curr_task() above) and restore that value before reenabling interrupts and | ||
| 5639 | * re-starting the system. | ||
| 5640 | * | ||
| 5641 | * ONLY VALID WHEN THE WHOLE SYSTEM IS STOPPED! | ||
| 5642 | */ | ||
| 5643 | void set_curr_task(int cpu, task_t *p) | ||
| 5644 | { | ||
| 5645 | cpu_curr(cpu) = p; | ||
| 5646 | } | ||
| 5647 | |||
| 5648 | #endif | ||
