Wo befindet sich die Definition struct task_struct im Linux-Kernel 2.6.30.5?

9

Im Kernel der Version 2.6.15 habe ich festgestellt, dass ich das task_structin der Datei (include / linux / sched.h) umschreiben kann , wie:

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

Aber leider habe ich beim Upgrade auf die Version 2.6.30.5 dieselbe Datei durchgesehen und finde nur eine Erklärung von task_struct:

struct task_struct;

Und ich habe keine Ahnung, auf welche Datei ich mich beziehen soll, um meine eigene anzugeben task_struct? Kann mir jemand helfen?

kaiwii ho
quelle

Antworten:

3

Ich benutze Debian Squeeze. Ich sehe eine Definition in den Headern, die meinem aktuellen Kernel entsprechen /usr/src/linux-headers-2.6.32-5-common-vserver/include/linux/sched.h. Die Definition beginnt mit

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
quelle
Also, verwende ich eine instabile Version? Aber hast du eine Idee, wo die Definition zu einem Hinweis wechselt? Danke
kaiwii ho
@kaiwiiho: Entschuldigung, ich bin mir nicht sicher, was du meinst.
Faheem Mitha
Ich meine, ob Version 2.6.15 nicht stabil ist. Und ich denke, dass die Definition in einer .c-Datei vorhanden sein muss, die die sched.h delcriert. Aber leider habe ich keine Methode gefunden, um die c-Datei herauszufinden. Und Kannst du mir ein paar Tipps geben?
Kaiwii Ho
@kaiwiiho: Ich bin mir nicht sicher, ob du mit stabil meinst. 2.6.15 ist eine Kernel-Version. Die Definition der Struktur befindet sich, soweit ich sehen kann, in der Header-Datei. Wonach suchen Sie?
Faheem Mitha