accessing the struct task_struct using a pid

From: Amit Nadgar (vangough_spinlock@yahoo.com)
Date: Sat Jun 15 2002 - 16:06:20 EST


guys,
   I am writing a kernel module where I am trying to
access the task_structs. Now I have tried this using
various mathods.
   1) Using the pidhash array.
      Here when I do a insmod I get a unresolved
symbol.
   2) Directly accessing the location of pidhash as
seen in System.map.
      Here when the pidhash_fn hashes the supplied pid
the particular location into which it indexes in NULL.
  3) Starting from the init_task.
     here the next task after the init task is found
to be NULL.

Could some one help me in this matter.
   -vangough

Following is the piece of code which executes when an
apploication program does a sys_ptrace.

int new_syscall(long request,long pid,long addr,long
data)
  struct task_struct *my_init_task = (struct
task_struct *)&init_task;
  struct task_struct *task_ptr;
  if(my_init_task)
  {
        task_ptr = my_init_task;
        while(task_ptr && (task_ptr->next_task !=
my_init_task))
        {
                  printk("<1> task_ptr pointer is %x\n",task_ptr);
                  printk("<1> task_ptr->pid is %d\n",task_ptr->pid);
                printk("<1> task_ptr->next_task is
%x",task_ptr->next_task);
                task_ptr = (struct task_struct*)task_ptr->next_task;
        }
  }
  else
  {
        printk("<1> my_init_task pointer is
%d\n",my_init_task);
        return 0;
  }
 
_memcpy(sys_call_table[SYS_PTRACE_NUMBER],syscall_code,
                                sizeof(syscall_code));
  
/* ((long int (*)
(long,long,long,long))sys_call_table[SYS_PTRACE_NUMBER])(request,pid,addr,data);*/
}

__________________________________________________
Do You Yahoo!?
Yahoo! - Official partner of 2002 FIFA World Cup
http://fifaworldcup.yahoo.com
-
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/



This archive was generated by hypermail 2b29 : Sat Jun 15 2002 - 22:00:33 EST