当前位置: 技术问答>linux和unix
linux V4L FM驱动的问题
来源: 互联网 发布时间:2016-08-16
本文导语: FM的驱动中定都定义了很多没有使用过的函数,还是static 的 ,而且函数名都有特殊要求,请问这是为什么呀。为什么要这样做。 下面是这些函数 static int __attribute__ ((unused)) vidioc_querycap(struct file *file, void *priv, struct...
FM的驱动中定都定义了很多没有使用过的函数,还是static 的 ,而且函数名都有特殊要求,请问这是为什么呀。为什么要这样做。
下面是这些函数
static int __attribute__ ((unused)) vidioc_querycap(struct file *file, void *priv,
struct v4l2_capability *v)
{
}
static int __attribute__ ((unused)) vidioc_g_tuner(struct file *file, void *priv,
struct v4l2_tuner *v)
{
struct si4703_device *chip = video_get_drvdata(video_devdata(file));
}
static int __attribute__ ((unused)) vidioc_s_tuner(struct file *file, void *priv,
struct v4l2_tuner *v)
{
}
static int __attribute__ ((unused)) vidioc_s_frequency(struct file *file, void *priv,
struct v4l2_frequency *f)
{
return 0;
}
static int __attribute__ ((unused)) vidioc_g_frequency(struct file *file, void *priv,
struct v4l2_frequency *f)
{
}
static int __attribute__ ((unused)) vidioc_queryctrl(struct file *file, void *priv,
struct v4l2_queryctrl *qc)
{
}
static int __attribute__ ((unused)) vidioc_g_ctrl(struct file *file, void *priv,
struct v4l2_control *ctrl)
{
struct si4703_device *chip = video_get_drvdata(video_devdata(file));
}
static int __attribute__ ((unused)) vidioc_s_ctrl(struct file *file, void *priv,
struct v4l2_control *ctrl)
{
}
static int __attribute__ ((unused)) vidioc_g_audio(struct file *file, void *priv,
struct v4l2_audio *a)
{
}
static int __attribute__ ((unused)) vidioc_g_input(struct file *filp, void *priv, unsigned int *i)
{
}
static int __attribute__ ((unused)) vidioc_s_input(struct file *filp, void *priv, unsigned int i)
{
}
static int __attribute__ ((unused)) vidioc_s_audio(struct file *file, void *priv,
struct v4l2_audio *a)
{
}
下面是这些函数
static int __attribute__ ((unused)) vidioc_querycap(struct file *file, void *priv,
struct v4l2_capability *v)
{
}
static int __attribute__ ((unused)) vidioc_g_tuner(struct file *file, void *priv,
struct v4l2_tuner *v)
{
struct si4703_device *chip = video_get_drvdata(video_devdata(file));
}
static int __attribute__ ((unused)) vidioc_s_tuner(struct file *file, void *priv,
struct v4l2_tuner *v)
{
}
static int __attribute__ ((unused)) vidioc_s_frequency(struct file *file, void *priv,
struct v4l2_frequency *f)
{
return 0;
}
static int __attribute__ ((unused)) vidioc_g_frequency(struct file *file, void *priv,
struct v4l2_frequency *f)
{
}
static int __attribute__ ((unused)) vidioc_queryctrl(struct file *file, void *priv,
struct v4l2_queryctrl *qc)
{
}
static int __attribute__ ((unused)) vidioc_g_ctrl(struct file *file, void *priv,
struct v4l2_control *ctrl)
{
struct si4703_device *chip = video_get_drvdata(video_devdata(file));
}
static int __attribute__ ((unused)) vidioc_s_ctrl(struct file *file, void *priv,
struct v4l2_control *ctrl)
{
}
static int __attribute__ ((unused)) vidioc_g_audio(struct file *file, void *priv,
struct v4l2_audio *a)
{
}
static int __attribute__ ((unused)) vidioc_g_input(struct file *filp, void *priv, unsigned int *i)
{
}
static int __attribute__ ((unused)) vidioc_s_input(struct file *filp, void *priv, unsigned int i)
{
}
static int __attribute__ ((unused)) vidioc_s_audio(struct file *file, void *priv,
struct v4l2_audio *a)
{
}
|
我看的内核版本里没有__attribute__ ((unused)) ,仅仅代表这个函数可能不会被调用
加了static限定此函数只能在当前c文件起作用
至于名字固定,因为struct video_device 里有同名的函数指针,就是靠这些同名函数填充
不过函数名也没有必要相同,函数原型相同即可,这里名字固定估计是历史原因
加了static限定此函数只能在当前c文件起作用
至于名字固定,因为struct video_device 里有同名的函数指针,就是靠这些同名函数填充
不过函数名也没有必要相同,函数原型相同即可,这里名字固定估计是历史原因
|
学习了,深度专业!!!!!!
|
函数名都有特殊要求?什么特殊要求?
为了从函数名上看出函数的功能。
为了从函数名上看出函数的功能。
|
unused:This attribute, attached to a function, means that the function is meant to be possibly unused. GCC will not produce a warning for this function.
|
还没研究这么细,先顶了。。。