lkml.org 
[lkml]   [2006]   [Jan]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRFC [patch 13/34] PID Virtualization Define new task_pid api
Actually define the task_pid() and task_tgid() functions.  Also
replace pid with __pid so as to make sure any missed accessors are
caught.

The resulting object code seems to be identical in most cases, and is
actually shorter in cases where current->pid is used twice in a row,
as it does not dereference task-> twice.

Signed-off-by: Dave Hansen <haveblue@us.ibm.com>
Signed-off-by: Serge Hallyn <serue@us.ibm.com>
---
sched.h | 16 +++++++++++++---
1 files changed, 13 insertions(+), 3 deletions(-)

Index: linux-2.6.15/include/linux/sched.h
===================================================================
--- linux-2.6.15.orig/include/linux/sched.h 2006-01-17 08:18:22.000000000 -0500
+++ linux-2.6.15/include/linux/sched.h 2006-01-17 08:37:03.000000000 -0500
@@ -732,8 +732,8 @@
/* ??? */
unsigned long personality;
unsigned did_exec:1;
- pid_t pid;
- pid_t tgid;
+ pid_t __pid;
+ pid_t __tgid;
/*
* pointers to (original) parent process, youngest child, younger sibling,
* older sibling, respectively. (p->father can be replaced with
@@ -877,6 +877,16 @@
return p->pids[PIDTYPE_PID].nr != 0;
}

+static inline pid_t task_pid(const struct task_struct *p)
+{
+ return p->__pid;
+}
+
+static inline pid_t task_tgid(const struct task_struct *p)
+{
+ return p->__tgid;
+}
+
extern void free_task(struct task_struct *tsk);
extern void __put_task_struct(struct task_struct *tsk);
#define get_task_struct(tsk) do { atomic_inc(&(tsk)->usage); } while(0)
@@ -1200,7 +1210,7 @@

extern task_t * FASTCALL(next_thread(const task_t *p));

-#define thread_group_leader(p) (p->pid == p->tgid)
+#define thread_group_leader(p) (task_pid(p) == task_tgid(p))

static inline int thread_group_empty(task_t *p)
{
--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-01-17 16:04    [W:5.385 / U:0.032 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site