Де в ядрі Linux 2.6.30.5 Linux визначається структура task_struct?


9

У ядрі версії 2.6.15 я зрозумів, що я можу переписати task_structфайл у файл (include / linux / sched.h) ,, наприклад:

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

Але, на жаль, коли я перейшов до версії 2.6.30.5, переглянув той самий файл, я просто знайшов декларацію task_struct, як-от:

struct task_struct;

І я поняття не маю, до якого файлу я повинен звернутися, щоб вказати власний task_struct? Може хтось мені допоможе?

Відповіді:


6

Використовуйте grepабо будь-який інший інструмент пошуку для пошуку визначення:

grep -r '^struct task_struct ' include

Або шукайте в Інтернеті за LXR : http://lxr.linux.no/linux+v2.6.30.5/+search?search=task_struct

Структура все ще визначена в include/linux/sched.h. Існує пряма заява, яка використовується у взаємно рекурсивних визначеннях типів, а визначення далі внизу.


3

Я використовую видавлювання Debian. Я бачу визначення в заголовках, відповідних моєму поточному ядру, в /usr/src/linux-headers-2.6.32-5-common-vserver/include/linux/sched.h. Визначення починається з

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.


Таким чином, я використовую в нестабільну версію , але робити і є якісь - або ідеї , де Defination переключитися на будь-який натяк ТНХ ??
kaiwii хо

@kaiwiiho: Вибачте, я не впевнений, що ви маєте на увазі.
Faheem Mitha

я маю на увазі, що чи версія 2.6.15 не є стабільною. Ви можете дати деякі підказки для мене?
kaiwii ho

@kaiwiiho: Не впевнений, що ти маєш на увазі стабільний. 2.6.15 - це випуск ядра. Наскільки я бачу, визначення структури має у файлі заголовка. Що ти шукаєш?
Faheem Mitha
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.