v4l2: fill the reserved fields of VIDIOC_REQBUFS ioctl

Message ID 49F8A325.7060303@freemail.hu (mailing list archive)
State Superseded, archived
Headers

Commit Message

Németh Márton April 29, 2009, 6:57 p.m. UTC
  The parameter of VIDIOC_REQBUFS is a pointer to struct v4l2_requestbuffers.
This structure has reserved fields which has to be filled with zeros
according to the V4L2 API specification, revision 0.24 [1].

The patch was tested with v4l-test 0.13 [2] with vivi driver.

References:
[1] V4L2 API specification, revision 0.24
    http://v4l2spec.bytesex.org/spec/r13696.htm

[2] v4l-test: Test environment for Video For Linux Two API
    http://v4l-test.sourceforge.net/

Signed-off-by: Márton Németh <nm127@freemail.hu>
---
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  

Comments

Trent Piepho April 30, 2009, 3:05 p.m. UTC | #1
On Wed, 29 Apr 2009, [UTF-8] Németh Márton wrote:
> The parameter of VIDIOC_REQBUFS is a pointer to struct v4l2_requestbuffers.
> This structure has reserved fields which has to be filled with zeros
> according to the V4L2 API specification, revision 0.24 [1].

As I read the spec, the reserved fields can be used for input from user
space if the buffer is of type V4L2_BUF_TYPE_PRIVATE or higher.
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  

Patch

--- linux-2.6.30-rc3/drivers/media/video/v4l2-ioctl.c.orig	2009-04-22 05:07:00.000000000 +0200
+++ linux-2.6.30-rc3/drivers/media/video/v4l2-ioctl.c	2009-04-29 19:07:46.000000000 +0200
@@ -1818,6 +1818,7 @@  static unsigned long cmd_input_size(unsi
 		CMDINSIZE(G_SLICED_VBI_CAP,	sliced_vbi_cap,	type);
 		CMDINSIZE(ENUM_FRAMESIZES,	frmsizeenum,	pixel_format);
 		CMDINSIZE(ENUM_FRAMEINTERVALS,	frmivalenum,	height);
+		CMDINSIZE(REQBUFS,		requestbuffers, memory);
 	default:
 		return _IOC_SIZE(cmd);
 	}