cvs commit: src/sys/sys conf.h src/sys/fs/specfs spec_vnops.c

Scott Long scottl at freebsd.org
Wed Oct 15 13:49:35 PDT 2003


On Wed, 15 Oct 2003, Poul-Henning Kamp wrote:
> In message <20031015133353.W35236 at root.org>, Nate Lawson writes:
>
> >I assume this is to avoid a trip through a vnode when doing IO to a
> >device?  Can you point me at the analysis of this approach?  I've heard
> >you talking about it before but don't have a reference.
>
> See the streams driver for an example why this can be considered
> merely a cleanup.
>
> >> @@ -223,6 +224,7 @@
> >>  	u_int		d_flags;
> >>  	const char	*d_name;
> >>  	d_open_t	*d_open;
> >> +	d_fdopen_t	*d_fdopen;
> >>  	d_close_t	*d_close;
> >>  	d_read_t	*d_read;
> >>  	d_write_t	*d_write;
> >
> >Sure we have C99 now but for binary compatibility with third party
> >drivers, shouldn't this be added at the end of the structure?  Especially
> >since this is an optional function.
>
> This was deliberately put in the logical place in order to encourage
> 3rdparty drivers to use the correct C99 initialization for cdevsw.

I think that Nate was concerned about binary compatibility, not source
compatibility (which is why he mentioned C99).  This change will of course
affect things like nvidia.ko, so a small heads-up might be in order.
Even though 5.x is not yet STABLE, we still need to practice good common
courtesy with API and ABI changes.

Scott



More information about the cvs-all mailing list