Subject: Re: Syscall and syscall versioning documentation for review
To: Pavel Cahyna <pavel@netbsd.org>
From: Martin Husemann <martin@duskware.de>
List: tech-kern
Date: 08/30/2006 12:58:38
On Wed, Aug 30, 2006 at 03:35:33AM +0200, Pavel Cahyna wrote:
> +<p>The naming conventions associated with versioning are
> +    complex. If the original system call is called foo (and
> +    implemented by a sys_foo function) and it is changed after the x.y
> +    release, the new syscall will be named __fooxy, with the function
> +    implementing it being named sys___fooxy. The original syscall
> +    (left for compatibility) will be still declared as sys_foo in
> +    <code class="filename">syscalls.master</code>, but will be tagged as
> +    COMPAT_XY, so the function will be named compat_xy_sys_foo. We
> +    will call sys_foo the original version, sys___fooxy the new
> +    version and compat_xy_sys_foo the compatibility version in the
> +    procedure described below.</p>

I think the naming scheme needs a bit more deatils.
Originally we named the syscalls after the libc major version. Then we
changed that to "last official release", and currently it should be "next
upcoming release". It gets a bit hairy if we version something twice between
releases.

This means the socket versioning used the wrong name, and most fhandle
stuff too, but the latest fhandle changes did it right (using 4.0 as
version).

But it is only a name, and doesn't matter much, after all. And since we didn't
have the guide chapter to tell us what to do, noone can be blamed.

Thanks for writing this!

Martin