【问题标题】:Adding a list to the task struct in sched.h向 sched.h 中的任务结构添加列表
【发布时间】:2016-11-14 08:48:25
【问题描述】:

我正在尝试向 linux 内核 (2.4.14-18) 中 sched.h 中的任务结构添加一个列表。

我已经添加了成员​​

list_t waitList

在task_struct中,并添加

waitList:           LIST_HEAD_INIT(tsk.waitList)

到 INIT_TASK 宏。

当我编译和加载内核时,我得到一个内核 oops。 还有什么我需要做和错过的吗?

【问题讨论】:

  • 那是您添加的实际行吗?应该是.waitList = LIST_HEAD_INIT(tsk.waitList),
  • @StoryTeller 我想我可以将它添加到 fork() 中,但是我可以在哪里放置该行来初始化第一个进程的列表?我放置的行与“run_list”的初始化相同,它也是任务的成员
  • LIST_HEAD_INIT 是一个宏。以上将扩展为.waitList = {&(tsk.waitList), &(tsk.waitList)},,并且属于INIT_TASK

标签: c linux


【解决方案1】:

问题是我在结构中间添加了新成员,这搞砸了初始化 init 进程。

将它移到任务结构的末尾解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-18
    • 1970-01-01
    • 2019-02-24
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    相关资源
    最近更新 更多