struct module如何在内核中工作

时间:2017-03-08 18:22:10

标签: linux-kernel linux-device-driver

我已经编写了一个用于学习的中断驱动程序linux版本3.8。我正在使用一些gpio apis,例如

gpio_request(gpioButton, "mypreciousss");       // Set up the gpioButton

当我在这个gpio_request中看到它正在使用

if (!try_module_get(chip->owner))

此处 chip->所有者 struct module 类型变量。

gpio_request 是我的init函数中的第一个函数,我没有做任何事情来创建 struct module 。 那么 try_module_get 如何使用?

1 个答案:

答案 0 :(得分:0)

这里我粘贴了函数gpio_request()(linux 3.8)

中的代码片段
     desc = &gpio_desc[gpio];
     chip = desc->chip;
     if (chip == NULL)
            goto done;

     if (!try_module_get(chip->owner))
             goto done;

这里,它们采用与传递的GPIO相对应的描述符,并且该描述符结构用于进一步更新。