svn commit: r350315 - in head/sys: kern sys

Rick Macklem rmacklem at uoguelph.ca
Sat Jul 27 01:35:08 UTC 2019


Konstantin Belousov wrote:
>On Thu, Jul 25, 2019 at 05:46:17AM +0000, Rick Macklem wrote:
>> Author: rmacklem
>> Date: Thu Jul 25 05:46:16 2019
>> New Revision: 350315
>> URL: https://svnweb.freebsd.org/changeset/base/350315
>>
>> Log:
>>   Add kernel support for a Linux compatible copy_file_range(2) syscall.
>
>> Modified: head/sys/kern/syscalls.master
>> >=====================================================================>=========
>> --- head/sys/kern/syscalls.master     Thu Jul 25 03:55:05 2019        (r350314)
>> +++ head/sys/kern/syscalls.master     Thu Jul 25 05:46:16 2019        (r350315)
>> @@ -3175,6 +3175,16 @@
>>                   int flag
>>               );
>>       }
>> +569  AUE_NULL        STD {
>> +             ssize_t copy_file_range(
>> +                 int infd,
>> +                 _Inout_opt_ off_t *inoffp,
>> +                 int outfd,
>> +                 _Inout_opt_ off_t *outoffp,
>> +                 size_t len,
>> +                 unsigned int flags
>> +             );
>> +     }
>
>I sat to write the compat32 shims, and only then noted that len has size_t
>type.  Why is it size_t and not off_t ?
Well, that's what Linux did.

Also, since it returns ssize_t, it can't do more than SSIZE_MAX (generally 1/2 of
SIZE_T_MAX). Returning ssize_t is also what Linux does and is consistent with
read(2)/write(2).

rick


More information about the svn-src-all mailing list