Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 8645
b: refs/heads/master
c: c324229
h: refs/heads/master
i:
  8643: 5a71130
v: v3
  • Loading branch information
Anton Altaparmakov committed Sep 12, 2005
1 parent 4ce4708 commit 28b9b5e
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 29 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 89ecf38c7aee6eb3f6aaf40a6d196ddff4b6d4a8
refs/heads/master: c3242291382c4ee2a30f4ef62270cd1c8a5b923f
4 changes: 2 additions & 2 deletions trunk/arch/i386/kernel/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,7 @@ work_notifysig: # deal with pending signals and
# vm86-space
xorl %edx, %edx
call do_notify_resume
jmp restore_all
jmp resume_userspace

ALIGN
work_notifysig_v86:
Expand All @@ -329,7 +329,7 @@ work_notifysig_v86:
movl %eax, %esp
xorl %edx, %edx
call do_notify_resume
jmp restore_all
jmp resume_userspace

# perform syscall exit tracing
ALIGN
Expand Down
70 changes: 44 additions & 26 deletions trunk/kernel/sched.c
Original file line number Diff line number Diff line change
Expand Up @@ -3576,32 +3576,6 @@ task_t *idle_task(int cpu)
return cpu_rq(cpu)->idle;
}

/**
* curr_task - return the current task for a given cpu.
* @cpu: the processor in question.
*/
task_t *curr_task(int cpu)
{
return cpu_curr(cpu);
}

/**
* set_curr_task - set the current task for a given cpu.
* @cpu: the processor in question.
* @p: the task pointer to set.
*
* Description: This function must only be used when non-maskable interrupts
* are serviced on a separate stack. It allows the architecture to switch the
* notion of the current task on a cpu in a non-blocking manner. This function
* must be called with interrupts disabled, the caller must save the original
* value of the current task (see curr_task() above) and restore that value
* before reenabling interrupts.
*/
void set_curr_task(int cpu, task_t *p)
{
cpu_curr(cpu) = p;
}

/**
* find_process_by_pid - find a process with a matching PID value.
* @pid: the pid in question.
Expand Down Expand Up @@ -5628,3 +5602,47 @@ void normalize_rt_tasks(void)
}

#endif /* CONFIG_MAGIC_SYSRQ */

#ifdef CONFIG_IA64
/*
* These functions are only useful for the IA64 MCA handling.
*
* They can only be called when the whole system has been
* stopped - every CPU needs to be quiescent, and no scheduling
* activity can take place. Using them for anything else would
* be a serious bug, and as a result, they aren't even visible
* under any other configuration.
*/

/**
* curr_task - return the current task for a given cpu.
* @cpu: the processor in question.
*
* ONLY VALID WHEN THE WHOLE SYSTEM IS STOPPED!
*/
task_t *curr_task(int cpu)
{
return cpu_curr(cpu);
}

/**
* set_curr_task - set the current task for a given cpu.
* @cpu: the processor in question.
* @p: the task pointer to set.
*
* Description: This function must only be used when non-maskable interrupts
* are serviced on a separate stack. It allows the architecture to switch the
* notion of the current task on a cpu in a non-blocking manner. This function
* must be called with all CPU's synchronized, and interrupts disabled, the
* and caller must save the original value of the current task (see
* curr_task() above) and restore that value before reenabling interrupts and
* re-starting the system.
*
* ONLY VALID WHEN THE WHOLE SYSTEM IS STOPPED!
*/
void set_curr_task(int cpu, task_t *p)
{
cpu_curr(cpu) = p;
}

#endif

0 comments on commit 28b9b5e

Please sign in to comment.