Dove si trova la definizione struct task_struct nel kernel Linux 2.6.30.5?


9

Nel kernel della versione 2.6.15, ho ottenuto che posso riscrivere task_structil file (include / linux / sched.h) , come:

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

Ma, sfortunatamente, quando ho eseguito l'aggiornamento alla versione 2.6.30.5, ho guardato attraverso lo stesso file, trovo solo una dichiarazione del task_structtipo:

struct task_struct;

E non ho idea di quale file dovrei fare riferimento al fine di specificare il mio task_struct? Qualcuno può aiutarmi?

Risposte:



3

Sto usando Debian Squeeze. Vedo una definizione nelle intestazioni corrispondente al mio kernel corrente, in /usr/src/linux-headers-2.6.32-5-common-vserver/include/linux/sched.h. La definizione inizia 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.


Quindi, sto usando una versione instabile? Ma hai idea di dove la definizione passi a?
— Qualche

@kaiwiiho: Scusa, non sono sicuro di cosa intendi.
— Faheem Mitha,

Voglio dire che la versione 2.6.15 non è stabile. E, penso che la definizione debba esistere in un file .c che cancella sched.h. Ma sfortunatamente, non ho trovato un metodo per trovare il file oute c. puoi darmi qualche consiglio?
— kaiwii ho

@kaiwiiho: Non sono sicuro di voler dire con stable. 2.6.15 è una versione del kernel. La definizione di struct è nel file di intestazione, per quanto posso vedere. Che cosa sta cercando?
— Faheem Mitha,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.