|
From: <sv...@va...> - 2009-04-23 04:40:14
|
Author: njn
Date: 2009-04-23 05:40:02 +0100 (Thu, 23 Apr 2009)
New Revision: 9584
Log:
Add support for sem_init() and sem_destroy(), from Filipe Cabecinhas.
Modified:
branches/DARWIN/coregrind/m_syswrap/priv_syswrap-darwin.h
branches/DARWIN/coregrind/m_syswrap/syswrap-darwin.c
Modified: branches/DARWIN/coregrind/m_syswrap/priv_syswrap-darwin.h
===================================================================
--- branches/DARWIN/coregrind/m_syswrap/priv_syswrap-darwin.h 2009-04-23 04:37:22 UTC (rev 9583)
+++ branches/DARWIN/coregrind/m_syswrap/priv_syswrap-darwin.h 2009-04-23 04:40:02 UTC (rev 9584)
@@ -58,6 +58,8 @@
DECL_TEMPLATE(darwin, sys_sem_close);
DECL_TEMPLATE(darwin, sys_sem_unlink);
DECL_TEMPLATE(darwin, sys_sem_post);
+DECL_TEMPLATE(darwin, sys_sem_init);
+DECL_TEMPLATE(darwin, sys_sem_destroy);
DECL_TEMPLATE(darwin, sys_sem_wait_nocancel);
DECL_TEMPLATE(darwin, sys_sem_trywait);
DECL_TEMPLATE(darwin, sys_bsdthread_create);
Modified: branches/DARWIN/coregrind/m_syswrap/syswrap-darwin.c
===================================================================
--- branches/DARWIN/coregrind/m_syswrap/syswrap-darwin.c 2009-04-23 04:37:22 UTC (rev 9583)
+++ branches/DARWIN/coregrind/m_syswrap/syswrap-darwin.c 2009-04-23 04:40:02 UTC (rev 9584)
@@ -1348,6 +1348,26 @@
*flags |= SfMayBlock;
}
+PRE(sys_sem_destroy)
+{
+ PRINT("sem_destroy( %#lx )", ARG1);
+ PRE_REG_READ1(int, "sem_destroy", vki_sem_t *, sem);
+ PRE_MEM_READ("sem_destroy(sem)", ARG1, sizeof(vki_sem_t));
+}
+
+PRE(sys_sem_init)
+{
+ PRINT("sem_init( %#lx, %ld, %ld )", ARG1, ARG2, ARG3);
+ PRE_REG_READ3(int, "sem_init", vki_sem_t *, sem,
+ int, pshared, unsigned int, value);
+ PRE_MEM_WRITE("sem_init(sem)", ARG1, sizeof(vki_sem_t));
+}
+
+POST(sys_sem_init)
+{
+ POST_MEM_WRITE(ARG1, sizeof(vki_sem_t));
+}
+
PRE(sys_sem_wait_nocancel)
{
PRINT("sem_wait_nocancel( %#lx )", ARG1);
@@ -7212,8 +7232,8 @@
// _____(__NR_sem_post),
MACX_(__NR_sem_post, sys_sem_post),
// _____(__NR_sem_getvalue),
-// _____(__NR_sem_init),
-// _____(__NR_sem_destroy),
+ MACXY(__NR_sem_init, sys_sem_init),
+ MACX_(__NR_sem_destroy, sys_sem_destroy),
// _____(__NR_open_extended),
// _____(__NR_umask_extended),
MACXY(__NR_stat_extended, sys_statx),
|