¿Dónde está la definición de struct task_struct en el kernel de Linux 2.6.30.5?

9

En el kernel de la versión 2.6.15, obtuve que puedo reescribir task_structen el archivo (include / linux / sched.h), como:

struct task_struct {  
    unsigned did_exec:1;  
    pid_t pid;  
    pid_t tgid;  
    ...
    char hide;
}  

Pero, desafortunadamente, cuando actualicé a la versión 2.6.30.5, busqué en el mismo archivo, solo encuentro una declaración de task_struct, como:

struct task_struct;

¿Y no tengo idea de a qué archivo debo referirme para especificar el mío task_struct? ¿Alguien me puede ayudar?

kaiwii ho
fuente

Respuestas:

3

Estoy usando Debian Squeeze. Veo una definición en los encabezados correspondientes a mi núcleo actual, en /usr/src/linux-headers-2.6.32-5-common-vserver/include/linux/sched.h. La definición comienza con

struct task_struct {
        volatile long state;    /* -1 unrunnable, 0 runnable, >0 stopped */
        void *stack;
        atomic_t usage;
        unsigned int flags;     /* per process flags, defined below */
        unsigned int ptrace;

        int lock_depth;         /* BKL lock depth */

HTH

Faheem Mitha
fuente
Entonces, ¿estoy usando una versión inestable? ¿Pero tienes alguna idea de dónde cambia la definición a? ¿
Alguna
@kaiwiiho: Lo siento, no estoy seguro de lo que quieres decir.
Faheem Mitha
Quiero decir que si la versión 2.6.15 no es estable. Y, creo que la definición debe existir en un archivo .c que delcrates el sched.h. Pero desafortunadamente, no he pensado en un método para encontrar nuestro archivo c. Y ¿Puedes darme algunas pistas?
kaiwii ho
@kaiwiiho: No estoy seguro de que te refieres a estable. 2.6.15 es una versión del kernel. La definición de la estructura está en el archivo de encabezado, por lo que puedo ver. ¿Qué estás buscando?
Faheem Mitha