我尝试使用irq_to_desc api来获取芯片数据并设置内核模块的irq亲和性。但api irq_to_desc不会在linux内核中导出。 有什么办法可以通过任何其他方式获得irq芯片数据或设置irq_affinity?
谢谢, dev的
答案 0 :(得分:1)
似乎内核2.6.32不提供对模块的irq描述符的访问。所有使用它的驱动程序都是内置的。
如果您确实需要此功能,可以使用find_symbol
获取其地址:
// It will be pointer to irq_to_desc function.
struct irq_desc (*func_irq_to_desc)(unsigned int irq);
// Initialize pointer to function
struct kernel_symbol* ks = find_symbol("irq_to_desc");
if(ks)
func_irq_to_desc = (typeof(func_irq_to_desc))ks->value;
// Use function
func_irq_to_desc(2)->affinity = 3;
当然,这是一个黑客攻击。此外,使用find_symbol
需要模块的“GPL”许可。