gpt4 book ai didi

c - 如何在linux内核中重用变量?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:20:10 25 4
gpt4 key购买 nike

extern unsigned long current_rx_time;
EXPORT_SYMBOL(current_rx_time);
int netif_rx(struct sk_buff *skb)
{

current_rx_time = jiffies;

}

我修改了dev.c中的内核源码,如上所示。后来我在 procfs 中创建一个可加载的内核模块,并使用 currentrx_time 将它发送到用户空间,如下所示:

static int my_proc_show(struct seq_file *m, void *v)
{
//I AM JUST PRINTING THAT VALUE BELOW

seq_printf(m, "%lu\n", current_rx_time *1000/HZ);

return 0;
}

但是当我编译上面的模块时出现错误,因为 current_rx_time 未声明。谁能告诉我如何解决这个问题?

最佳答案

首先您需要声明您的变量,然后您可以导出它。

所以只需在 dev.c 中声明即可

unsigned long current_rx_time;

然后将其导出为 dev.c

EXPORT_SYMBOL(current_rx_time);

以及其他您想使用它的可加载模块(比如在 temp2.​​c 中)...

extern unsigned long current_rx_time;

现在确保当你要编译 temp2.​​c 时,dev.c 也正在编译。

关于c - 如何在linux内核中重用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23216550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com