Où est la définition de struct task_struct dans le noyau Linux 2.6.30.5?

9

Dans le noyau de la version 2.6.15, j'ai compris que je pouvais réécrire task_structle fichier (inclure / linux / sched.h) , comme:

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

Mais, malheureusement, lorsque je suis passé à la version 2.6.30.5, j'ai parcouru le même fichier, je trouve juste une déclaration de la task_struct, comme:

struct task_struct;

Et je n'ai aucune idée du fichier auquel je dois me référer pour spécifier le mien task_struct? Est-ce que quelqu'un peut m'aider?

kaiwii ho
la source

Réponses:

3

J'utilise Debian Squeeze. Je vois une définition dans les en-têtes correspondant à mon noyau actuel, dans /usr/src/linux-headers-2.6.32-5-common-vserver/include/linux/sched.h. La définition commence par

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
la source
Donc, est-ce que j'utilise une version instable? Mais avez-vous une idée de l'endroit où la définition bascule? N'importe quel indice?
Thx
@kaiwiiho: Désolé, je ne sais pas ce que vous voulez dire.
Faheem Mitha
je veux dire que si la version 2.6.15 n'est pas stable.Et, je pense que la définition doit exister dans un fichier .c qui détruit le sched.h.Mais malheureusement, je n'ai pas pensé à une méthode pour trouver le fichier c out.And pouvez-vous me donner quelques indices?
kaiwii ho
@kaiwiiho: Je ne suis pas sûr de vouloir dire stable. 2.6.15 est une version du noyau. La définition de la structure se trouve dans le fichier d'en-tête, pour autant que je puisse voir. Que cherchez-vous?
Faheem Mitha