From: Tom Hughes Date: Tue, 24 Nov 2009 16:03:19 +0000 (+0000) Subject: Add support for sched_rr_get_interval system call based on patch X-Git-Tag: svn/VALGRIND_3_6_0~467 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0d0f83535374be54359e7a5903665123a90ef0fc;p=thirdparty%2Fvalgrind.git Add support for sched_rr_get_interval system call based on patch from Dodji Seketeli. Part fix for #215973. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10946 --- diff --git a/coregrind/m_syswrap/priv_syswrap-linux.h b/coregrind/m_syswrap/priv_syswrap-linux.h index f2575037d4..9873c87a21 100644 --- a/coregrind/m_syswrap/priv_syswrap-linux.h +++ b/coregrind/m_syswrap/priv_syswrap-linux.h @@ -214,7 +214,7 @@ DECL_TEMPLATE(linux, sys_sched_getscheduler); DECL_TEMPLATE(linux, sys_sched_yield); DECL_TEMPLATE(linux, sys_sched_get_priority_max); DECL_TEMPLATE(linux, sys_sched_get_priority_min); -//DECL_TEMPLATE(linux, sys_sched_rr_get_interval); // not yet encountered +DECL_TEMPLATE(linux, sys_sched_rr_get_interval); DECL_TEMPLATE(linux, sys_sched_setaffinity); DECL_TEMPLATE(linux, sys_sched_getaffinity); diff --git a/coregrind/m_syswrap/syswrap-amd64-linux.c b/coregrind/m_syswrap/syswrap-amd64-linux.c index eded6d1387..29af331f15 100644 --- a/coregrind/m_syswrap/syswrap-amd64-linux.c +++ b/coregrind/m_syswrap/syswrap-amd64-linux.c @@ -1200,7 +1200,7 @@ const SyscallTableEntry ML_(syscall_table)[] = { LINX_(__NR_sched_getscheduler, sys_sched_getscheduler), // 145 LINX_(__NR_sched_get_priority_max, sys_sched_get_priority_max), // 146 LINX_(__NR_sched_get_priority_min, sys_sched_get_priority_min), // 147 - //LINX?(__NR_sched_rr_get_interval, sys_sched_rr_get_interval), // 148 + LINXY(__NR_sched_rr_get_interval, sys_sched_rr_get_interval), // 148 GENX_(__NR_mlock, sys_mlock), // 149 GENX_(__NR_munlock, sys_munlock), // 150 diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c index fa519d907f..c25d08c4b7 100644 --- a/coregrind/m_syswrap/syswrap-linux.c +++ b/coregrind/m_syswrap/syswrap-linux.c @@ -2318,6 +2318,21 @@ PRE(sys_sched_get_priority_min) PRE_REG_READ1(long, "sched_get_priority_min", int, policy); } +PRE(sys_sched_rr_get_interval) +{ + PRINT("sys_sched_rr_get_interval ( %ld, %#lx )", ARG1, ARG2); + PRE_REG_READ2(int, "sched_rr_get_interval", + vki_pid_t, pid, + struct vki_timespec *, tp); + PRE_MEM_WRITE("sched_rr_get_interval(timespec)", + ARG2, sizeof(struct vki_timespec)); +} + +POST(sys_sched_rr_get_interval) +{ + POST_MEM_WRITE(ARG2, sizeof(struct vki_timespec)); +} + PRE(sys_sched_setaffinity) { PRINT("sched_setaffinity ( %ld, %ld, %#lx )", ARG1, ARG2, ARG3); diff --git a/coregrind/m_syswrap/syswrap-ppc32-linux.c b/coregrind/m_syswrap/syswrap-ppc32-linux.c index 306db66c71..527b5fd9b7 100644 --- a/coregrind/m_syswrap/syswrap-ppc32-linux.c +++ b/coregrind/m_syswrap/syswrap-ppc32-linux.c @@ -1690,7 +1690,7 @@ const SyscallTableEntry ML_(syscall_table)[] = { LINX_(__NR_sched_get_priority_max, sys_sched_get_priority_max),// 159 LINX_(__NR_sched_get_priority_min, sys_sched_get_priority_min),// 160 -//.. //LINX?(__NR_sched_rr_get_interval, sys_sched_rr_get_interval), // 161 */* + LINXY(__NR_sched_rr_get_interval, sys_sched_rr_get_interval), // 161 GENXY(__NR_nanosleep, sys_nanosleep), // 162 GENX_(__NR_mremap, sys_mremap), // 163 LINX_(__NR_setresuid, sys_setresuid), // 164 diff --git a/coregrind/m_syswrap/syswrap-ppc64-linux.c b/coregrind/m_syswrap/syswrap-ppc64-linux.c index 98ce4172c7..691e0a1fce 100644 --- a/coregrind/m_syswrap/syswrap-ppc64-linux.c +++ b/coregrind/m_syswrap/syswrap-ppc64-linux.c @@ -1336,7 +1336,7 @@ const SyscallTableEntry ML_(syscall_table)[] = { LINX_(__NR_sched_get_priority_max, sys_sched_get_priority_max),// 159 LINX_(__NR_sched_get_priority_min, sys_sched_get_priority_min),// 160 -// _____(__NR_sched_rr_get_interval, sys_sched_rr_get_interval), // 161 + LINXY(__NR_sched_rr_get_interval, sys_sched_rr_get_interval), // 161 GENXY(__NR_nanosleep, sys_nanosleep), // 162 GENX_(__NR_mremap, sys_mremap), // 163 // _____(__NR_setresuid, sys_setresuid), // 164 diff --git a/coregrind/m_syswrap/syswrap-x86-linux.c b/coregrind/m_syswrap/syswrap-x86-linux.c index 0472e3f473..273893e900 100644 --- a/coregrind/m_syswrap/syswrap-x86-linux.c +++ b/coregrind/m_syswrap/syswrap-x86-linux.c @@ -2048,7 +2048,7 @@ const SyscallTableEntry ML_(syscall_table)[] = { LINX_(__NR_sched_get_priority_max, sys_sched_get_priority_max),// 159 LINX_(__NR_sched_get_priority_min, sys_sched_get_priority_min),// 160 -//zz //LINX?(__NR_sched_rr_get_interval, sys_sched_rr_get_interval), // 161 */* + LINXY(__NR_sched_rr_get_interval, sys_sched_rr_get_interval), // 161 GENXY(__NR_nanosleep, sys_nanosleep), // 162 GENX_(__NR_mremap, sys_mremap), // 163 LINX_(__NR_setresuid, sys_setresuid16), // 164