aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/sched.h
diff options
context:
space:
mode:
authorPavel Emelyanov <xemul@openvz.org>2007-10-19 02:40:06 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-19 14:53:39 -0400
commit198fe21b0a17fe9c68cb519ecc566534b04f122b (patch)
tree690825669858d0f458fc137e42adf77cdf370ea4 /include/linux/sched.h
parent7af5729474b5b8ad385adadab78d6e723e7655a3 (diff)
pid namespaces: helpers to find the task by its numerical ids
When searching the task by numerical id on may need to find it using global pid (as it is done now in kernel) or by its virtual id, e.g. when sending a signal to a task from one namespace the sender will specify the task's virtual id and we should find the task by this value. [akpm@linux-foundation.org: fix gfs2 linkage] Signed-off-by: Pavel Emelyanov <xemul@openvz.org> Cc: Oleg Nesterov <oleg@tv-sign.ru> Cc: Sukadev Bhattiprolu <sukadev@us.ibm.com> Cc: Paul Menage <menage@google.com> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux/sched.h')
-rw-r--r--include/linux/sched.h31
1 files changed, 29 insertions, 2 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 77e8cad3b17a..511cc4549f58 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1514,8 +1514,35 @@ extern struct task_struct init_task;
1514 1514
1515extern struct mm_struct init_mm; 1515extern struct mm_struct init_mm;
1516 1516
1517#define find_task_by_pid(nr) find_task_by_pid_type(PIDTYPE_PID, nr) 1517extern struct pid_namespace init_pid_ns;
1518extern struct task_struct *find_task_by_pid_type(int type, int pid); 1518
1519/*
1520 * find a task by one of its numerical ids
1521 *
1522 * find_task_by_pid_type_ns():
1523 * it is the most generic call - it finds a task by all id,
1524 * type and namespace specified
1525 * find_task_by_pid_ns():
1526 * finds a task by its pid in the specified namespace
1527 * find_task_by_pid_type():
1528 * finds a task by its global id with the specified type, e.g.
1529 * by global session id
1530 * find_task_by_pid():
1531 * finds a task by its global pid
1532 *
1533 * see also find_pid() etc in include/linux/pid.h
1534 */
1535
1536extern struct task_struct *find_task_by_pid_type_ns(int type, int pid,
1537 struct pid_namespace *ns);
1538
1539#define find_task_by_pid_ns(nr, ns) \
1540 find_task_by_pid_type_ns(PIDTYPE_PID, nr, ns)
1541#define find_task_by_pid_type(type, nr) \
1542 find_task_by_pid_type_ns(type, nr, &init_pid_ns)
1543#define find_task_by_pid(nr) \
1544 find_task_by_pid_type(PIDTYPE_PID, nr)
1545
1519extern void __set_special_pids(pid_t session, pid_t pgrp); 1546extern void __set_special_pids(pid_t session, pid_t pgrp);
1520 1547
1521/* per-UID process charging. */ 1548/* per-UID process charging. */