increase PIN_SHIFT to 28 for reading large .so-file (temporary, we should use pread instead), and added system-call time

This commit is contained in:
Masamichi Takagi
2012-10-28 00:40:12 +09:00
parent 3142b4d4d6
commit 9fe8d548fb
2 changed files with 35 additions and 1 deletions

View File

@@ -16,6 +16,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/utsname.h>
#include <time.h>
#include <sys/time.h>
#include <signal.h>
#include <sys/wait.h>
@@ -208,7 +209,7 @@ void print_desc(struct program_load_desc *desc)
}
}
#define PIN_SHIFT 24
#define PIN_SHIFT 28
#define PIN_SIZE (1 << PIN_SHIFT)
#define PIN_MASK ~(unsigned long)(PIN_SIZE - 1)
@@ -591,6 +592,27 @@ int main_loop(int fd, int cpu, pthread_mutex_t *lock)
}
break;
/*
glibc-2.14.90/sysdeps/unix/sysv/linux/x86_64/time.S
linux-2.6.34.13/arch/x86/kernel/vsyscall_64.c
/usr/include/time.h
/usr/include/bits/types.h
/usr/include/bits/typesizes.h
#define __TIME_T_TYPE __SLONGWORD_TYPE
*/
case __NR_time: {
time_t ret;
if(w.sr.args[0]) {
ret = time((time_t *)dma_buf);
} else {
ret = time(NULL);
}
SET_ERR(ret);
printf("time=%ld\n", ret);
do_syscall_return(fd, cpu, ret, 1, (unsigned long)dma_buf,
w.sr.args[0], sizeof(time_t));
break; }
case __NR_gettimeofday:
ret = gettimeofday((struct timeval *)dma_buf, NULL);
SET_ERR(ret);