Can anyone help clarify details about the FreeBSD system call interface?

John Baldwin jhb at freebsd.org
Fri Sep 5 15:53:58 UTC 2014


On Thursday, September 04, 2014 9:20:27 pm Julian Elischer wrote:
> On 9/4/14, 7:06 AM, John Baldwin wrote:
> > On Wednesday, September 03, 2014 05:30:01 PM Benjamin Kaduk wrote:
> >> On Thu, 28 Aug 2014, Steven Stewart-Gallus wrote:
> >>>> svn blame says that the whole implementation dates from r1541.
> >>>> Looks like
> >>>> it was never implemented.  Some googling indicates that it was a
> >>>> plannedroutine to set the stack size, which was never implemented,
> >>>> anywhere.
> >>>>
> >>>> The locking comments were added in r79224, but the implementation is
> >>>> otherwise from r1541, i.e., it was never implemented.
> >>> Alright, so sys/kern/syscalls.master can be patched somewhat like so
> >>> and I won't need to document them?
> >>>
> >>> -72	AUE_O_VADVISE	STD	{ int ovadvise(int anom); } vadvise \
> >>> -				    ovadvise_args int
> >>> +72	AUE_NULL	OBSOL   ovadvise
> >>>
> >>> -70	AUE_SSTK	STD	{ int sstk(int incr); }
> >>> +70	AUE_SSTK	OBSOL	sstk
> >> I don't think so; I think that would be a regression.
> >>
> >> We do currently provide implementations for these syscalls, that just
> >> happen to always return failure.  I think that the OBSOL annotation
> >> corresponds to a complete lack of implementation.  Perhaps it would be
> >> acceptable at a major release boundary, but this is not my area of
> >> expertise.
> > For these two calls, I doubt anything is actually using them.  They've been
> > stubs since the Mach VM was imported into BSD in 1990.  We don't ship a system
> > call for creat() anymore either.  In this particular case, I think it would be
> > more of a feature if those symbols disappeared from libc and caused link
> > errors.
> have we ever shipped code for creat?
> 
> if we lose teh ability to run FreeBSD 1.1 chroots I'll be most upset.. 
> it's a great
> selling point when pointing out  our commitment to ABI stability and 
> backwards
> portability.

These system calls were NOPs in 4.4 BSD.  vadvise was marked as obsolete
('ovadvise') in syscalls.master when it was first imported in 1989:

http://svnweb.freebsd.org/csrg/sys/kern/syscalls.master?view=markup&pathrev=37325

I can't actually find the implementations of vadvise() and sstk() prior to
the Mach VM import in the CSRG repository so I don't know how far back they
were NOPs, but I doubt any FreeBSD binary uses these.

-- 
John Baldwin


More information about the freebsd-hackers mailing list