我已经编写了一个用于学习的中断驱动程序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 如何使用?
答案 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相对应的描述符,并且该描述符结构用于进一步更新。