Gdzie jest definicja struct task_struct w jądrze Linux 2.6.30.5?


9

W jądrze wersji 2.6.15 mam możliwość przepisania task_structpliku (include / linux / schedule.h), np .:

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

Ale niestety, kiedy uaktualniłem do wersji 2.6.30.5, przejrzałem ten sam plik, po prostu znajduję deklarację task_struct:

struct task_struct;

I nie mam pojęcia, do którego pliku powinienem się odwoływać w celu określenia własnego task_struct? Czy ktoś może mi pomóc?

Odpowiedzi:



3

Używam ściśnięcia Debiana. W nagłówkach widzę definicję odpowiadającą mojemu bieżącemu jądru, w /usr/src/linux-headers-2.6.32-5-common-vserver/include/linux/sched.h. Definicja zaczyna się od

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.


Więc, czy używam wersji niestabilnej? Ale czy masz pojęcie, gdzie zmiana
definicji na

@kaiwiiho: Przepraszam, nie jestem pewien, co masz na myśli.
Faheem Mitha

mam na myśli to, czy wersja 2.6.15 nie jest stabilna. I myślę, że definacja musi istnieć w pliku .c, który opisuje harmonogram.h.Ale niestety nie wymyśliłem metody znalezienia pliku out.c. czy możesz podać mi jakieś wskazówki?
kaiwii ho

@kaiwiiho: Nie jestem pewien, czy chodzi ci o stabilnego. 2.6.15 to wydanie jądra. O ile wiem, definicja struktury znajduje się w pliku nagłówkowym. Czego szukasz?
Faheem Mitha
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.