Re: [PATCHv3 1/1] Documentation: describe how to add a system call

From: David Drysdale
Date: Mon Aug 10 2015 - 03:43:49 EST


On Wed, Aug 5, 2015 at 5:21 PM, Pavel Machek <pavel@xxxxxx> wrote:
> Hi!
>
>> Add a document describing the process of adding a new system call,
>> including the need for a flags argument for future compatibility, and
>> covering 32-bit/64-bit concerns (albeit in an x86-centric way).
>>
>> Signed-off-by: David Drysdale <drysdale@xxxxxxxxxx>
>> Reviewed-by: Michael Kerrisk <mtk.manpages@xxxxxxxxx>
>> Reviewed-by: Eric B Munson <emunson@xxxxxxxxxx>
>> Reviewed-by: Kees Cook <keescook@xxxxxxxxxxxx>
>> Reviewed-by: Randy Dunlap <rdunlap@xxxxxxxxxxxxx>
>> ---
>> Documentation/adding-syscalls.txt | 531 ++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 531 insertions(+)
>> create mode 100644 Documentation/adding-syscalls.txt
>
> We usually align documentation to less than 80 columns, afaict.

Ah, a few re-worded paragraphs crept over the limit. Reflowed.

>> +call. To make sure that userspace programs can safely use flags between kernel
>> +versions, check whether the flags value holds any unknown flags, and reject the
>> +sycall (with EINVAL) if it does:
>
> syscall?

Fixed, thanks.

>> +New system call proposals, like any change to the kernel's API, should always
>> +be cc'ed to linux-api@xxxxxxxxxxxxxxx
>
> . at and of sentence?

Fixed.

>> +System Calls Returning Elsewhere
>> +--------------------------------
>> +
>> +For most system calls, once the system call is complete the user program
>> +continues exactly where it left off -- at the next instruction, with the same
>> +stack and registers as before the system call, and with the same virtual
>> +memory space.
>
> Umm. Normally we place return value in register. And I'm not sure.. do
> syscalls preserve registers that are normally caller-clobbered in the ABI?

Reworded to:

For most system calls, once the system call is complete the user program
continues exactly where it left off -- at the next instruction, with the
stack the same and most of the registers the same as before the system call,
and with the same virtual memory space.

> Thanks,
> Pavel

Thanks for the updates,
David

> --
> (english) http://www.livejournal.com/~pavelmachek
> (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/