2.6.30.5 Linux 커널에서 task_struct 구조체는 어디에 정의되어 있습니까?

2.6.30.5 Linux 커널에서 task_struct 구조체는 어디에 정의되어 있습니까?

커널 2.6.15 버전에서는 task_struct파일(include/linux/sched.h)의 내용을 다시 쓸 수 있다는 것을 알았습니다. 예를 들면 다음과 같습니다.

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

task_struct하지만 안타깝게도 버전 2.6.30.5로 업그레이드했을 때 동일한 파일을 살펴보니 다음과 같은 선언만 발견되었습니다 .

struct task_struct;

내 자신의 를 지정하려면 어떤 파일을 참조해야 할지 모르겠습니다 task_struct. 누구든지 나를 도와줄 수 있나요?

답변1

grep정의를 찾으려면 또는 기타 검색 도구를 사용하세요 .

grep -r '^struct task_struct ' include

아니면 온라인으로 검색해 보세요LX: http://lxr.linux.no/linux+v2.6.30.5/+search?search=task_struct

구조는 여전히 에 정의되어 있습니다 include/linux/sched.h. 하나 있다전방 선언상호 재귀적인 유형 정의의 경우정의더 아래로.

답변2

저는 데비안 스퀴즈를 사용하고 있습니다. 헤더에 현재 커널에 해당하는 정의가 있습니다 /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.

관련 정보