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-src
mailing list