Hi Tomasz,

On Friday 23 March 2012 12:33:24 Tomasz Stanislawski wrote:
> On 03/22/2012 12:16 PM, Laurent Pinchart wrote:
> > On Tuesday 13 March 2012 11:17:02 Tomasz Stanislawski wrote:

[snip]

> >> +  case VIDIOC_EXPBUF:
> >> +  {
> >> +          struct v4l2_exportbuffer *p = arg;
> >> +
> >> +          if (!ops->vidioc_expbuf)
> >> +                  break;
> >> +
> >> +          ret = ops->vidioc_expbuf(file, fh, p);
> > 
> > You can pass arg to ops->vidioc_expbuf() directly, there's no need to
> > create a struct v4l2_exportbuffer *p variable.
> 
> No problem. I tried to follow style of other ioctls.
> Notice that adding this temporary variable provides some form of type
> checking. I mean using a proper structure for a proper callback.

It makes sure that the argument passed to video_expbuf is indeed a 
v4l2_exportbuffer, but it doesn't check that the arg pointer you assign to p 
points to the right type, so it's a bit pointless in my opinion.

This construct makes sense if you need to access field of the arg pointer here 
before or after calling the operation.

> >> +          break;
> >> +  }

-- 
Regards,

Laurent Pinchart

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to