当前位置: 技术问答>linux和unix
起步简单问题,求解答。
来源: 互联网 发布时间:2017-04-04
本文导语: 看到一个Linux的驱动代码,上来就给整蒙圈了,如下: 驱动的.c文件里面,有个gpio_direction_output(BT_REG_ON, 0); 就是这个gpio_direction_output函数,做了什么工作? 这个函数好像在里面定义的内联函数,这个内联函数直接返...
看到一个Linux的驱动代码,上来就给整蒙圈了,如下:
驱动的.c文件里面,有个gpio_direction_output(BT_REG_ON, 0);
就是这个gpio_direction_output函数,做了什么工作?
这个函数好像在里面定义的内联函数,这个内联函数直接返回了一个:return -ENOSYS;
太坑爹了吧,怎么可能直接返回了呢。
有人说具体的工作在gpiolib.c里面实现了,到底是个什么意思,请高手给分析一下。
谢谢了。
驱动的.c文件里面,有个gpio_direction_output(BT_REG_ON, 0);
就是这个gpio_direction_output函数,做了什么工作?
这个函数好像在里面定义的内联函数,这个内联函数直接返回了一个:return -ENOSYS;
太坑爹了吧,怎么可能直接返回了呢。
有人说具体的工作在gpiolib.c里面实现了,到底是个什么意思,请高手给分析一下。
谢谢了。
|
注意里预处理ifdef指明了内联函数只有在没有定义CONFIG_GENERIC_GPIO才会用到..
#ifdef CONFIG_GENERIC_GPIO
#include
#else
#include
#include
#include
static inline int gpio_direction_output(unsigned gpio, int value)
{
return -ENOSYS;
}
#endif
#ifdef CONFIG_GENERIC_GPIO
#include
#else
#include
#include
#include
static inline int gpio_direction_output(unsigned gpio, int value)
{
return -ENOSYS;
}
#endif