7082645: Hotspot doesn't compile on old linuxes after 7060836
Move syscall ids definitions into os_linux.cpp Reviewed-by: johnc
This commit is contained in:
parent
1bec3a1bd3
commit
d8fd276e35
@ -125,10 +125,6 @@
|
||||
# include <inttypes.h>
|
||||
# include <sys/ioctl.h>
|
||||
|
||||
#ifdef AMD64
|
||||
#include <asm/vsyscall.h>
|
||||
#endif
|
||||
|
||||
#define MAX_PATH (2 * K)
|
||||
|
||||
// for timer info max values which include all bits
|
||||
@ -2600,8 +2596,17 @@ int os::Linux::sched_getcpu_syscall(void) {
|
||||
int retval = -1;
|
||||
|
||||
#if defined(IA32)
|
||||
# ifndef SYS_getcpu
|
||||
# define SYS_getcpu 318
|
||||
# endif
|
||||
retval = syscall(SYS_getcpu, &cpu, NULL, NULL);
|
||||
#elif defined(AMD64)
|
||||
// Unfortunately we have to bring all these macros here from vsyscall.h
|
||||
// to be able to compile on old linuxes.
|
||||
# define __NR_vgetcpu 2
|
||||
# define VSYSCALL_START (-10UL << 20)
|
||||
# define VSYSCALL_SIZE 1024
|
||||
# define VSYSCALL_ADDR(vsyscall_nr) (VSYSCALL_START+VSYSCALL_SIZE*(vsyscall_nr))
|
||||
typedef long (*vgetcpu_t)(unsigned int *cpu, unsigned int *node, unsigned long *tcache);
|
||||
vgetcpu_t vgetcpu = (vgetcpu_t)VSYSCALL_ADDR(__NR_vgetcpu);
|
||||
retval = vgetcpu(&cpu, NULL, NULL);
|
||||
|
Loading…
Reference in New Issue
Block a user