This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Use __syscall_ulong_t for __cpu_mask


On Tue, Dec 1, 2015 at 8:07 AM, Carlos O'Donell <carlos@redhat.com> wrote:
> On 11/30/2015 01:46 PM, H.J. Lu wrote:
>> Since x86-64 and x32 use the same set of sched_XXX system call
>> interface:
>>
>> [hjl@gnu-6 linux-stable]$ grep sched_
>> arch/x86/entry/syscalls/syscall_64.tbl
>> 24    common  sched_yield             sys_sched_yield
>> 142   common  sched_setparam          sys_sched_setparam
>> 143   common  sched_getparam          sys_sched_getparam
>> 144   common  sched_setscheduler      sys_sched_setscheduler
>> 145   common  sched_getscheduler      sys_sched_getscheduler
>> 146   common  sched_get_priority_max  sys_sched_get_priority_max
>> 147   common  sched_get_priority_min  sys_sched_get_priority_min
>> 148   common  sched_rr_get_interval   sys_sched_rr_get_interval
>> 203   common  sched_setaffinity       sys_sched_setaffinity
>> 204   common  sched_getaffinity       sys_sched_getaffinity
>> 314   common  sched_setattr           sys_sched_setattr
>> 315   common  sched_getattr           sys_sched_getattr
>> [hjl@gnu-6 linux-stable]$
>>
>> __cpu_mask should be __syscall_ulong_t.
>>
>>       [BZ #19313]
>>       * sysdeps/unix/sysv/linux/bits/sched.h (__cpu_mask): Replace
>>       unsigned long int with __syscall_ulong_t.
>
> How did you test this?

I tested it on x32, i686 and x86-64.  Maybe we should add
__CPU_MASK_TYPE to bits/typesizes.h so that each
architecture can define it own type for __cpu_mask.

>> ---
>>  sysdeps/unix/sysv/linux/bits/sched.h | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/sysdeps/unix/sysv/linux/bits/sched.h b/sysdeps/unix/sysv/linux/bits/sched.h
>> index ae089df..27d87c4 100644
>> --- a/sysdeps/unix/sysv/linux/bits/sched.h
>> +++ b/sysdeps/unix/sysv/linux/bits/sched.h
>> @@ -115,7 +115,7 @@ struct __sched_param
>>  # define __NCPUBITS  (8 * sizeof (__cpu_mask))
>>
>>  /* Type for array elements in 'cpu_set_t'.  */
>> -typedef unsigned long int __cpu_mask;
>> +typedef __syscall_ulong_t __cpu_mask;
>>
>>  /* Basic access functions.  */
>>  # define __CPUELT(cpu)       ((cpu) / __NCPUBITS)
>>
>



-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]