|
From: <sv...@va...> - 2009-05-11 08:11:06
|
Author: njn
Date: 2009-05-11 09:10:53 +0100 (Mon, 11 May 2009)
New Revision: 9833
Log:
Implement shmget wrapper on Darwin.
Modified:
branches/DARWIN/coregrind/m_syswrap/priv_syswrap-darwin.h
branches/DARWIN/coregrind/m_syswrap/syswrap-darwin.c
branches/DARWIN/memcheck/tests/darwin/scalar.c
branches/DARWIN/memcheck/tests/darwin/scalar.stderr.exp
Modified: branches/DARWIN/coregrind/m_syswrap/priv_syswrap-darwin.h
===================================================================
--- branches/DARWIN/coregrind/m_syswrap/priv_syswrap-darwin.h 2009-05-11 08:01:09 UTC (rev 9832)
+++ branches/DARWIN/coregrind/m_syswrap/priv_syswrap-darwin.h 2009-05-11 08:10:53 UTC (rev 9833)
@@ -81,6 +81,7 @@
DECL_TEMPLATE(darwin, sys_setegid);
DECL_TEMPLATE(darwin, sys_listxattr);
DECL_TEMPLATE(darwin, sys_flistxattr);
+DECL_TEMPLATE(darwin, sys_shmget);
DECL_TEMPLATE(darwin, sys_shm_open);
DECL_TEMPLATE(darwin, sys_statx);
DECL_TEMPLATE(darwin, sys_fchmod_extended);
Modified: branches/DARWIN/coregrind/m_syswrap/syswrap-darwin.c
===================================================================
--- branches/DARWIN/coregrind/m_syswrap/syswrap-darwin.c 2009-05-11 08:01:09 UTC (rev 9832)
+++ branches/DARWIN/coregrind/m_syswrap/syswrap-darwin.c 2009-05-11 08:10:53 UTC (rev 9833)
@@ -1848,6 +1848,11 @@
POST_MEM_WRITE( ARG2, (vki_ssize_t)RES );
}
+PRE(sys_shmget)
+{
+ PRINT("sys_shmget ( %ld, %ld, %ld )",ARG1,ARG2,ARG3);
+ PRE_REG_READ3(long, "shmget", vki_key_t, key, vki_size_t, size, int, shmflg);
+}
PRE(sys_shm_open)
{
@@ -7220,7 +7225,7 @@
// _____(__NR_shmat),
// _____(__NR_shmctl),
// _____(__NR_shmdt),
-// _____(__NR_shmget),
+ MACX_(__NR_shmget, sys_shmget),
MACXY(__NR_shm_open, sys_shm_open),
// _____(__NR_shm_unlink),
MACX_(__NR_sem_open, sys_sem_open),
Modified: branches/DARWIN/memcheck/tests/darwin/scalar.c
===================================================================
--- branches/DARWIN/memcheck/tests/darwin/scalar.c 2009-05-11 08:01:09 UTC (rev 9832)
+++ branches/DARWIN/memcheck/tests/darwin/scalar.c 2009-05-11 08:10:53 UTC (rev 9833)
@@ -311,7 +311,11 @@
// __NR_shmat 262
// __NR_shmctl 263
// __NR_shmdt 264
+
// __NR_shmget 265
+ GO(__NR_shmget, "3s 0m");
+ SY(__NR_shmget, x0, x0, x0); FAIL;
+
// __NR_shm_open 266
// __NR_shm_unlink 267
Modified: branches/DARWIN/memcheck/tests/darwin/scalar.stderr.exp
===================================================================
--- branches/DARWIN/memcheck/tests/darwin/scalar.stderr.exp 2009-05-11 08:01:09 UTC (rev 9832)
+++ branches/DARWIN/memcheck/tests/darwin/scalar.stderr.exp 2009-05-11 08:10:53 UTC (rev 9833)
@@ -104,6 +104,18 @@
...
Address 0x........ is not stack'd, malloc'd or (recently) free'd
-----------------------------------------------------
+265: __NR_shmget 3s 0m
+-----------------------------------------------------
+
+Syscall param shmget(key) contains uninitialised byte(s)
+ ...
+
+Syscall param shmget(size) contains uninitialised byte(s)
+ ...
+
+Syscall param shmget(shmflg) contains uninitialised byte(s)
+ ...
+-----------------------------------------------------
268: __NR_sem_open 2s 1m
-----------------------------------------------------
|