Skip to content

Commit

Permalink
Add __CPU_MASK_TYPE for __cpu_mask
Browse files Browse the repository at this point in the history
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 unsigned long long, instead of unsigned long, for
x32.  This patch adds __CPU_MASK_TYPE so that each architecture can
define the proper type for __cpu_mask.

	[BZ #19313]
	* bits/typesizes.h (__CPU_MASK_TYPE): New.
	* sysdeps/mach/hurd/bits/typesizes.h (__CPU_MASK_TYPE): Likewise.
	* sysdeps/nacl/bits/typesizes.h (__CPU_MASK_TYPE): Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/typesizes.h (__CPU_MASK_TYPE):
	Likewise.
	* sysdeps/unix/sysv/linux/generic/bits/typesizes.h (__CPU_MASK_TYPE):
	Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/typesizes.h (__CPU_MASK_TYPE):
	Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/typesizes.h (__CPU_MASK_TYPE):
	Likewise.
	* sysdeps/unix/sysv/linux/x86/bits/typesizes.h (__CPU_MASK_TYPE):
	* sysdeps/unix/sysv/linux/bits/sched.h (__cpu_mask): Replace
	unsigned long int with __CPU_MASK_TYPE.
  • Loading branch information
H.J. Lu committed Dec 1, 2015
1 parent c960ded commit 7635a88
Show file tree
Hide file tree
Showing 10 changed files with 27 additions and 1 deletion.
18 changes: 18 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,21 @@
2015-12-01 H.J. Lu <hongjiu.lu@intel.com>

[BZ #19313]
* bits/typesizes.h (__CPU_MASK_TYPE): New.
* sysdeps/mach/hurd/bits/typesizes.h (__CPU_MASK_TYPE): Likewise.
* sysdeps/nacl/bits/typesizes.h (__CPU_MASK_TYPE): Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/typesizes.h (__CPU_MASK_TYPE):
Likewise.
* sysdeps/unix/sysv/linux/generic/bits/typesizes.h (__CPU_MASK_TYPE):
Likewise.
* sysdeps/unix/sysv/linux/s390/bits/typesizes.h (__CPU_MASK_TYPE):
Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/typesizes.h (__CPU_MASK_TYPE):
Likewise.
* sysdeps/unix/sysv/linux/x86/bits/typesizes.h (__CPU_MASK_TYPE):
* sysdeps/unix/sysv/linux/bits/sched.h (__cpu_mask): Replace
unsigned long int with __CPU_MASK_TYPE.

2015-12-01 Szabolcs Nagy <szabolcs.nagy@arm.com>

* sysdeps/aarch64/libm-test-ulps: Regenerated.
Expand Down
1 change: 1 addition & 0 deletions bits/typesizes.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
#define __SSIZE_T_TYPE __SWORD_TYPE
#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
#define __CPU_MASK_TYPE __ULONGWORD_TYPE

#ifdef __LP64__
/* Tell the libc code that off_t and off64_t are actually the same type
Expand Down
1 change: 1 addition & 0 deletions sysdeps/mach/hurd/bits/typesizes.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
#define __SSIZE_T_TYPE __SWORD_TYPE
#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
#define __CPU_MASK_TYPE __ULONGWORD_TYPE

/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 256
Expand Down
1 change: 1 addition & 0 deletions sysdeps/nacl/bits/typesizes.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
#define __SSIZE_T_TYPE __SWORD_TYPE
#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
#define __CPU_MASK_TYPE __ULONGWORD_TYPE

/* All our foo64_t types match their foo_t counterparts. */
#define __OFF_T_MATCHES_OFF64_T 1
Expand Down
1 change: 1 addition & 0 deletions sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@
#define __SSIZE_T_TYPE __SWORD_TYPE
#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
#define __CPU_MASK_TYPE __ULONGWORD_TYPE
#define __FSWORD_T_TYPE __S32_TYPE

/* Tell the libc code that off_t and off64_t are actually the same type
Expand Down
2 changes: 1 addition & 1 deletion sysdeps/unix/sysv/linux/bits/sched.h
Original file line number Diff line number Diff line change
Expand Up @@ -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 __CPU_MASK_TYPE __cpu_mask;

/* Basic access functions. */
# define __CPUELT(cpu) ((cpu) / __NCPUBITS)
Expand Down
1 change: 1 addition & 0 deletions sysdeps/unix/sysv/linux/generic/bits/typesizes.h
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@
#define __SSIZE_T_TYPE __SWORD_TYPE
#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
#define __CPU_MASK_TYPE __ULONGWORD_TYPE

#ifdef __LP64__
/* Tell the libc code that off_t and off64_t are actually the same type
Expand Down
1 change: 1 addition & 0 deletions sysdeps/unix/sysv/linux/s390/bits/typesizes.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@
#endif
#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
#define __CPU_MASK_TYPE __ULONGWORD_TYPE

#ifdef __s390x__
/* Tell the libc code that off_t and off64_t are actually the same type
Expand Down
1 change: 1 addition & 0 deletions sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
#define __SSIZE_T_TYPE __SWORD_TYPE
#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
#define __CPU_MASK_TYPE __ULONGWORD_TYPE

#if defined __arch64__ || defined __sparcv9
/* Tell the libc code that off_t and off64_t are actually the same type
Expand Down
1 change: 1 addition & 0 deletions sysdeps/unix/sysv/linux/x86/bits/typesizes.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@
#define __BLKSIZE_T_TYPE __SYSCALL_SLONG_TYPE
#define __FSID_T_TYPE struct { int __val[2]; }
#define __SSIZE_T_TYPE __SWORD_TYPE
#define __CPU_MASK_TYPE __SYSCALL_ULONG_TYPE

#ifdef __x86_64__
/* Tell the libc code that off_t and off64_t are actually the same type
Expand Down

0 comments on commit 7635a88

Please sign in to comment.