patch-2.1.37 linux/arch/sparc/ap1000/hw.c
Next file: linux/arch/sparc/ap1000/mpp.c
Previous file: linux/arch/sparc/ap1000/bnet.c
Back to the patch index
Back to the overall index
-  Lines: 68
-  Date:
Mon May 12 10:35:38 1997
-  Orig file: 
v2.1.36/linux/arch/sparc/ap1000/hw.c
-  Orig date: 
Sun Jan 26 02:07:06 1997
diff -u --recursive --new-file v2.1.36/linux/arch/sparc/ap1000/hw.c linux/arch/sparc/ap1000/hw.c
@@ -86,14 +86,21 @@
 static void show_ptasks(void)
 {
 	extern struct task_struct *task[];
+	struct task_struct *p;
 	int i;
 	int count=0;
 
-	for (i=MPP_TASK_BASE;i<NR_TASKS;i++)
-		if (task[i]) {
-			show_task(task[i]);
+	read_lock(&tasklist_lock);
+	for_each_task(p) {
+		struct task_struct **tp = p->tarray_ptr;
+
+		if(tp >= &task[MPP_TASK_BASE]) {
+			show_task(p);
 			count++;
 		}
+	}
+	read_unlock(&tasklist_lock);
+
 	if (count == 0)
 		printk("no parallel tasks on cell %d\n",mpp_cid());
 }
@@ -101,14 +108,18 @@
 static void show_utasks(void)
 {
 	extern struct task_struct *task[];
+	struct task_struct *p;
 	int i;
 	int count=0;
 
-	for (i=0;i<NR_TASKS;i++)
-		if (task[i] && task[i]->uid > 1)  {
+	read_lock(&tasklist_lock);
+	for_each_task(p) {
+		if(p->uid > 1) {
 			show_task(task[i]);
 			count++;
 		}
+	}
+	read_unlock(&tasklist_lock);
 
 	if (count == 0)
 		printk("no user tasks on cell %d\n",mpp_cid());
@@ -118,15 +129,19 @@
 static void show_otasks(void)
 {
 	extern struct task_struct *task[];
+	struct task_struct *p;
 	int i;
 	int count=0;
 	extern int ap_current_uid;
 
-	for (i=0;i<NR_TASKS;i++)
-		if (task[i] && task[i]->uid == ap_current_uid)  {
+	read_lock(&tasklist_lock);
+	for_each_task(p) {
+		if(p->uid == ap_current_uid) {
 			show_task(task[i]);
 			count++;
 		}
+	}
+	read_unlock(&tasklist_lock);
 
 	if (count == 0)
 		printk("no tasks on cell %d\n",mpp_cid());
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov