Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Oct 2016 18:03:07 -0600
From:      Alan Somers <asomers@freebsd.org>
To:        Cedric Blancher <cedric.blancher@gmail.com>
Cc:        Konstantin Belousov <kostikbel@gmail.com>,  "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>
Subject:   Re: Proper way to add vendor-specific syscalls?
Message-ID:  <CAOtMX2gOs-qt70Xpvrd5t5sutr3XxVVb2%2BSEGDoDEM_U=fJtOQ@mail.gmail.com>
In-Reply-To: <CALXu0UeSogSPD0vcVO1eaWJ4Vuk6yFZBjwhPVtt6ovXLvF18Fg@mail.gmail.com>
References:  <CAOtMX2gi0rvC85qcUb2UZRbVGB%2BS%2BeXuAzzxn50GmUV4QKKghg@mail.gmail.com> <20161003181803.GS38409@kib.kiev.ua> <CAOtMX2hCMJSUDrNw8t5rVkeH_Hs5J-Q_10vA5eYXkmGYGZYYhA@mail.gmail.com> <CALXu0UeSogSPD0vcVO1eaWJ4Vuk6yFZBjwhPVtt6ovXLvF18Fg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
In this case, I'm working with vendor-specific syscalls.  They'll
never be exposed outside of my organization, so I don't have to worry
about polluting the FreeBSD namespace.  I do, however, have to worry
about FreeBSD additions interfering with the vendor-specific syscalls.

-Alan

On Mon, Oct 3, 2016 at 5:38 PM, Cedric Blancher
<cedric.blancher@gmail.com> wrote:
> Why do you want to add new syscalls? The UNIX way is to add new
> ioctl() and be done.
>
> Typically new syscalls need committee approval, to prevent that every
> crazy idea gets a new syscall and thus litters that namespace.
>
> Ced
>
> On 3 October 2016 at 22:00, alan somers <asomers@gmail.com> wrote:
>> On Mon, Oct 3, 2016 at 12:18 PM, Konstantin Belousov
>> <kostikbel@gmail.com> wrote:
>>> On Mon, Oct 03, 2016 at 11:48:39AM -0600, Alan Somers wrote:
>>>> What's the proper way to add a vendor-specific syscall? The comments
>>>> in kern/syscalls.master suggest that they should be put in the range
>>>> from 151-180, but most of that range is actually occupied.
>>> I think that the 'vendors' there means vendors of other BSD-derived
>>> systems and not e.g. an appliance vendors.
>>>
>>>> Only five
>>>> nosys slots are available.  If I add syscalls to the end of the list,
>>>> they'll likely collide with future standard syscalls.  Should I just
>>>> added ~100 nosys syscalls to the end of the list, and put my custom
>>>> syscalls afterwards?  Is there any penalty to lengthening the list?
>>>
>>> Each nosys syscall increases the size of the default ABI syscalls table.
>>> On amd64 sizeof(struct sysent) == 48, adding 100 nosys entries would
>>> waste a page and some more.
>>>
>>> How many syscalls do you need ?  You probably do not allow random modules
>>> loaded and implementing syscalls, so could you use e.g. range 210-219 ?
>>>
>>> If you look further, you will see lot of holes like 258-271, 281-288
>>> etc.  Current practice is to allocate new syscalls at the end of the
>>> table, which leaves there holes unused with high chance of never being
>>> collected.
>>
>> Ok, it sounds like filling holes is the best method.  Thanks for the
>> advice, kib.
>>
>> -Alan
>> _______________________________________________
>> freebsd-hackers@freebsd.org mailing list
>> https://lists.freebsd.org/mailman/listinfo/freebsd-hackers
>> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"
>
>
>
> --
> Cedric Blancher <cedric.blancher@gmail.com>
> [https://plus.google.com/u/0/+CedricBlancher/]
> Institute Pasteur



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOtMX2gOs-qt70Xpvrd5t5sutr3XxVVb2%2BSEGDoDEM_U=fJtOQ>