PERFORCE change 125147 for review
Poul-Henning Kamp
phk at FreeBSD.org
Tue Aug 14 11:19:25 PDT 2007
http://perforce.freebsd.org/chv.cgi?CH=125147
Change 125147 by phk at phk_critter on 2007/08/14 18:19:05
add three more syscalls:
sys_thr_self
sys_thr_set_name
sys_rtprio_thread
Affected files ...
.. //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-freebsd.h#3 edit
.. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#4 edit
.. //depot/projects/valgrind/include/vki-freebsd.h#2 edit
Differences ...
==== //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-freebsd.h#3 (text+ko) ====
@@ -197,6 +197,9 @@
DECL_TEMPLATE(freebsd, sys_statfs6);
DECL_TEMPLATE(freebsd, sys_fstatfs6);
DECL_TEMPLATE(freebsd, sys_fhstatfs6);
+DECL_TEMPLATE(freebsd, sys_thr_self);
+DECL_TEMPLATE(freebsd, sys_thr_set_name);
+DECL_TEMPLATE(freebsd, sys_rtprio_thread);
DECL_TEMPLATE(freebsd, sys_fork);
DECL_TEMPLATE(freebsd, sys_vfork);
DECL_TEMPLATE(freebsd, sys_modfind);
==== //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#4 (text+ko) ====
@@ -1724,6 +1724,47 @@
#endif
/* ---------------------------------------------------------------------
+ thr* wrappers
+ ------------------------------------------------------------------ */
+
+PRE(sys_thr_self)
+{
+ PRINT( "sys_thr_self ( %p )", ARG1 );
+ PRE_REG_READ1(long, "thr_self", long *, "id");
+ PRE_MEM_WRITE( "thr_self()", ARG1, sizeof(long));
+}
+POST(sys_thr_self)
+{
+ POST_MEM_WRITE( ARG1, sizeof(long));
+}
+
+PRE(sys_thr_set_name)
+{
+ PRINT( "sys_thr_set_name ( %d, %p )", ARG1, ARG2 );
+ PRE_REG_READ2(long, "thr_set_name", long, "id", const char *, "name");
+ PRE_MEM_RASCIIZ( "sys_thr_set_name(threadname)", ARG2);
+}
+
+PRE(sys_rtprio_thread)
+{
+ PRINT( "sys_rtprio_thread ( %d, %d, %p )", ARG1, ARG2, ARG3 );
+ PRE_REG_READ3(long, "rtprio_thread",
+ int, "function", __vki_lwpid_t, "lwpid", struct vki_rtprio *, "rtp");
+ if (ARG1 == VKI_RTP_SET) {
+ PRE_MEM_READ( "rtprio_thread(set)", ARG3, sizeof(struct vki_rtprio));
+ } else if (ARG1 == VKI_RTP_LOOKUP) {
+ PRE_MEM_WRITE( "rtprio_thread(lookup)", ARG3, sizeof(struct vki_rtprio));
+ } else {
+ /* PHK ?? */
+ }
+}
+POST(sys_rtprio_thread)
+{
+ if (ARG1 == VKI_RTP_LOOKUP && RES == 0)
+ POST_MEM_WRITE( ARG3, sizeof(struct vki_rtprio));
+}
+
+/* ---------------------------------------------------------------------
sig* wrappers
------------------------------------------------------------------ */
@@ -2628,7 +2669,7 @@
// thr_create 430
// thr_exit 431
- // thr_self 432
+ BSDXY(__NR_thr_self, sys_thr_self), // 432
// thr_kill 433
// _umtx_lock 434
// _umtx_unlock 435
@@ -2668,9 +2709,9 @@
// kmq_unlink 462
// abort2 463
- // thr_set_name 464
+ BSDX_(__NR_thr_set_name, sys_thr_set_name), // 464
// aio_fsync 465
- // rtprio_thread 466
+ BSDXY(__NR_rtprio_thread, sys_rtprio_thread), // 466
// nosys 467
// nosys 468
==== //depot/projects/valgrind/include/vki-freebsd.h#2 (text+ko) ====
@@ -1658,6 +1658,18 @@
vki_modspecific_t data;
};
+//----------------------------------------------------------------------
+// From sys/rtprio.h
+//----------------------------------------------------------------------
+
+struct vki_rtprio {
+ vki_uint16_t type;
+ vki_uint16_t prio;
+};
+
+#define VKI_RTP_LOOKUP 0
+#define VKI_RTP_SET 1
+
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
More information about the p4-projects
mailing list