|
From: <sv...@va...> - 2009-11-24 16:03:38
|
Author: tom
Date: 2009-11-24 16:03:19 +0000 (Tue, 24 Nov 2009)
New Revision: 10946
Log:
Add support for sched_rr_get_interval system call based on patch
from Dodji Seketeli. Part fix for #215973.
Modified:
trunk/coregrind/m_syswrap/priv_syswrap-linux.h
trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
trunk/coregrind/m_syswrap/syswrap-linux.c
trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c
trunk/coregrind/m_syswrap/syswrap-x86-linux.c
Modified: trunk/coregrind/m_syswrap/priv_syswrap-linux.h
===================================================================
--- trunk/coregrind/m_syswrap/priv_syswrap-linux.h 2009-11-23 08:19:20 UTC (rev 10945)
+++ trunk/coregrind/m_syswrap/priv_syswrap-linux.h 2009-11-24 16:03:19 UTC (rev 10946)
@@ -214,7 +214,7 @@
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);
Modified: trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2009-11-23 08:19:20 UTC (rev 10945)
+++ trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2009-11-24 16:03:19 UTC (rev 10946)
@@ -1200,7 +1200,7 @@
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
Modified: trunk/coregrind/m_syswrap/syswrap-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-linux.c 2009-11-23 08:19:20 UTC (rev 10945)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c 2009-11-24 16:03:19 UTC (rev 10946)
@@ -2318,6 +2318,21 @@
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);
Modified: trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2009-11-23 08:19:20 UTC (rev 10945)
+++ trunk/coregrind/m_syswrap/syswrap-ppc32-linux.c 2009-11-24 16:03:19 UTC (rev 10946)
@@ -1690,7 +1690,7 @@
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
Modified: trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c 2009-11-23 08:19:20 UTC (rev 10945)
+++ trunk/coregrind/m_syswrap/syswrap-ppc64-linux.c 2009-11-24 16:03:19 UTC (rev 10946)
@@ -1336,7 +1336,7 @@
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
Modified: trunk/coregrind/m_syswrap/syswrap-x86-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2009-11-23 08:19:20 UTC (rev 10945)
+++ trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2009-11-24 16:03:19 UTC (rev 10946)
@@ -2048,7 +2048,7 @@
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
|