Где находится определение struct task_struct в ядре Linux 2.6.30.5?

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 Squeeze. Я вижу определение в заголовках, соответствующих моему текущему ядру, в /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 */

НТН.

Фахим Митха
источник
Итак, я использую нестабильную версию? Но у вас есть идея, где определение переходит на «любой намек» thx
kaiwii ho
@kaiwiiho: Извините, я не уверен, что вы имеете в виду.
Фахим Митха
Я имею в виду, что версия 2.6.15 нестабильна. И я думаю, что определение должно существовать в файле .c, который разделяет sched.h. Но, к сожалению, я не придумал способ найти файл c oute. Можете ли вы дать мне несколько советов?
kaiwii ho
@kaiwiiho: Не уверен, что вы имеете в виду стабильной. 2.6.15 является выпуском ядра. Насколько я вижу, определение структуры находится в заголовочном файле. Что вы ищете?
Фахим Митха