Re: Confusion in usr/include/linux/videodev.h

From: Jaswinder Singh Rajput
Date: Tue Jan 20 2009 - 23:44:20 EST


On Wed, Jan 21, 2009 at 7:20 AM, Mauro Carvalho Chehab
<mchehab@xxxxxxxxxxxxx> wrote:
> On Wed, 21 Jan 2009 07:10:38 +0530
> Jaswinder Singh Rajput <jaswinder@xxxxxxxxxx> wrote:
>
>> usr/include/linux/videodev.h is giving 2 warnings in 'make headers_check':
>> usr/include/linux/videodev.h:19: leaks CONFIG_VIDEO to userspace where it is not valid
>> usr/include/linux/videodev.h:314: leaks CONFIG_VIDEO to userspace where it is not valid
>>
>> Whole file is covered with #if defined(CONFIG_VIDEO_V4L1_COMPAT) || !defined (__KERNEL__)
>>
>> It means this file is only valid for kernel mode if CONFIG_VIDEO_V4L1_COMPAT is defined but in user mode it is always valid.
>>
>> Can we choose some better alternative Or can we use this file as:
>>
>> #ifdef CONFIG_VIDEO_V4L1_COMPAT
>> #include <linux/videodev.h>
>> #endif
>
> This is somewhat like what we have on audio devices (where there are OSS and ALSA API's).
>
> V4L1 is the old deprecated userspace API for video devices. It is still
> required by some userspace applications. So, on userspace, it should be
> included. Also, this allows that one userspace app to be compatible with both
> V4L2 API (the current one) and the legacy V4L1 one.
>
> It should be noticed that are still a few drivers using the legacy API yet to
> be converted.
>

If you have no objections then I will make a patchset which do followings:
1. Remove #if defined(CONFIG_VIDEO_V4L1_COMPAT) || !defined
(__KERNEL__) from include/linux/videodev.h
2. cover all #include <linux/videodev.h> with #ifdef
CONFIG_VIDEO_V4L1_COMPAT in kernel

By this way, we can satisfy both kernel space and userspace issue and
also get rid of above warnings.

If you have better suggestion then let me know.

Thanks,

--
JSR
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/