Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 7 Feb 2017 12:29:35 -0600
From:      Alan Cox <alc@rice.edu>
To:        John Baldwin <jhb@freebsd.org>, Edward Tomasz Napierala <trasz@freebsd.org>
Cc:        Konstantin Belousov <kostikbel@gmail.com>, src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r313352 - in head/sys: compat/cloudabi compat/freebsd32 compat/linux vm
Message-ID:  <98dce77f-b581-93fe-d2d6-ca1e27cd6a95@rice.edu>
In-Reply-To: <3460210.7qRYCLqZx1@ralph.baldwin.cx>
References:  <201702062057.v16KvCtI069664@repo.freebsd.org> <20170207083909.GX2092@kib.kiev.ua> <20170207125508.GA62670@brick> <3460210.7qRYCLqZx1@ralph.baldwin.cx>

next in thread | previous in thread | raw e-mail | index | archive | help
On 02/07/2017 11:55, John Baldwin wrote:
> On Tuesday, February 07, 2017 12:55:08 PM Edward Tomasz Napierala wrote:
>> On 0207T1039, Konstantin Belousov wrote:
>>> On Mon, Feb 06, 2017 at 03:03:11PM -0800, John Baldwin wrote:
>>>> On Monday, February 06, 2017 08:57:12 PM Edward Tomasz Napierala wrote:
>>>>> Author: trasz
>>>>> Date: Mon Feb  6 20:57:12 2017
>>>>> New Revision: 313352
>>>>> URL: https://svnweb.freebsd.org/changeset/base/313352
>>>>>
>>>>> Log:
>>>>>   Add kern_vm_mmap2(), kern_vm_mprotect(), kern_vm_msync(), kern_vm_munlock(),
>>>>>   kern_vm_munmap(), and kern_vm_madvise(), and use them in various compats
>>>>>   instead of their sys_*() counterparts.
>>>>>   
>>>>>   Reviewed by:	ed, dchagin, kib
>>>>>   MFC after:	2 weeks
>>>>>   Sponsored by:	DARPA, AFRL
>>>>>   Differential Revision:	https://reviews.freebsd.org/D9378
>>>> I know kib@ suggested kern_vm_<foo> instead of the vm_<foo> you had suggested,
>>>> but just kern_<foo> would be more consistent.  That is what we have done with
>>>> every other system call.  (e.g. there isn't kern_socket_bind, kern_socket_listen,
>>>> etc., but just kern_bind() and kern_listen()).
>>> Note that the kern_vm_* functions are not quite regular syscall helpers.
>>> The big issue with them, which caused my suggestion, is that the
>>> functions cannot be declared in sys/syscallsubr.h, because their
>>> declarations depend on the vm/*.h namespace.
>> Exactly; they use vm-specific types (vm_offset_t, for example).  And I
>> wanted to avoid changing the types all over the place, at least for now.
> You would only need <vm/vm.h> though right?  None of the actual objects
> are used, just things like vm_prot_t?
>
> OTOH, kern_* is currently only used for things that are syscall implementations
> and generally take syscall arguments directly (or close approximations of
> syscall arguments).  It is annoying to lose the consistency in meaning.
>

I tend to agree with John.  Why not use the same types for the kern_*
parameters as are used in the corresponding args structure?  Let the
conversion to the Mach VM types happen inside of the function's
implementation.





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?98dce77f-b581-93fe-d2d6-ca1e27cd6a95>