|
|
1
1
我觉得两者兼而有之。
首先,在这种情况下,最可能的原因是初始化work结构至少需要4-5行代码,而且由于这是内核中经常发生的事情,它会给代码增加不必要的冗余,所以它被抽象成宏。它本可以是一个函数,但效率也较低。 此外,内核开发人员和维护人员在检查代码时很难确保每次声明一个work_struct时,它也能正确初始化。在这种情况下,由于初始化代码位于同一个位置,因此可以安全地假设使用此宏的任何代码都将正确初始化结构。 第三,您可能是在特定子系统中处理特定驱动程序的开发人员,可能不想知道内核工作队列机制的内部内容。您只希望能够使用提供的api对您的工作进行排队。此宏还可以避免您为内部操作而烦恼。即使明天将新字段添加到结构中供内部使用,也不需要更改驱动程序代码。 |
|
|
melonfsck · 是否允许在堆栈上分配旋转锁? 2 年前 |
|
|
gulpr · printk只输出时间戳,不打印消息 2 年前 |
|
|
é¢åºæ° · git发送电子邮件--回复失败 2 年前 |
|
|
zebra_rey · 内核模块是提取设备寄存器的理想方式吗? 2 年前 |