* Move the new 10.9 syscalls into their own section.
* Add a POST_MEM_WRITE for kernelrpc_mach_vm_map_trap
* fix a compiler complaint caused by lack of a cast
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14085 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/coregrind/m_syswrap/syswrap-darwin.c b/coregrind/m_syswrap/syswrap-darwin.c
index 30b381c..3adaa55 100644
--- a/coregrind/m_syswrap/syswrap-darwin.c
+++ b/coregrind/m_syswrap/syswrap-darwin.c
@@ -8291,7 +8291,7 @@
POST(kernelrpc_mach_vm_allocate_trap)
{
PRINT("address:%p size:%#lx", *(void**)ARG2, ARG3);
- if (ML_(safe_to_deref)(ARG2, sizeof(void*))) {
+ if (ML_(safe_to_deref)((void*)ARG2, sizeof(void*))) {
POST_MEM_WRITE(ARG2, sizeof(void*));
}
if ((ARG4 & VM_FLAGS_ANYWHERE) != VM_FLAGS_FIXED)
@@ -8322,24 +8322,6 @@
ML_(notify_core_and_tool_of_mprotect)(ARG2, ARG3, ARG5);
}
-#if DARWIN_VERS >= DARWIN_10_9
-PRE(kernelrpc_mach_vm_map_trap)
-{
- PRINT("kernelrpc_mach_vm_map_trap"
- "(target:%#lx, address:%p, size:%#lx,"
- " mask:%#lx, flags:%#lx, cur_prot:%#lx)",
- ARG1, *(void**)ARG2, ARG3, ARG4, ARG5, ARG6);
-}
-POST(kernelrpc_mach_vm_map_trap)
-{
- PRINT("-> address:%p", *(void**)ARG2);
- ML_(notify_core_and_tool_of_mmap)(
- *(mach_vm_address_t*)ARG2, ARG3,
- VKI_PROT_READ|VKI_PROT_WRITE, VKI_MAP_ANON, -1, 0);
- // ML_(sync_mappings)("after", "kernelrpc_mach_vm_map_trap", 0);
-}
-#endif /* DARWIN_VERS >= DARWIN_10_9 */
-
PRE(kernelrpc_mach_port_allocate_trap)
{
PRINT("kernelrpc_mach_port_allocate_trap(task:%#lx, mach_port_right_t:%#lx)",
@@ -8398,29 +8380,6 @@
PRINT("kernelrpc_mach_port_extract_member_trap(FIXME,ARGUMENTS_UNKNOWN)");
}
-#if DARWIN_VERS >= DARWIN_10_9
-PRE(kernelrpc_mach_port_construct_trap)
-{
- PRINT("kernelrpc_mach_port_construct_trap(FIXME,ARGUMENTS_UNKNOWN)");
-}
-
-PRE(kernelrpc_mach_port_destruct_trap)
-{
- PRINT("kernelrpc_mach_port_destruct_trap(FIXME,ARGUMENTS_UNKNOWN)");
-}
-
-PRE(kernelrpc_mach_port_guard_trap)
-{
- PRINT("kernelrpc_mach_port_guard_trap(FIXME)");
-}
-
-PRE(kernelrpc_mach_port_unguard_trap)
-{
- PRINT("kernelrpc_mach_port_unguard_trap(FIXME)");
-}
-
-#endif /* DARWIN_VERS >= DARWIN_10_9 */
-
PRE(iopolicysys)
{
PRINT("iopolicysys(FIXME)(0x%lx, 0x%lx, 0x%lx)", ARG1, ARG2, ARG3);
@@ -8446,6 +8405,54 @@
/* ---------------------------------------------------------------------
+ Added for OSX 10.9 (Mavericks)
+ ------------------------------------------------------------------ */
+
+#if DARWIN_VERS >= DARWIN_10_9
+PRE(kernelrpc_mach_vm_map_trap)
+{
+ PRINT("kernelrpc_mach_vm_map_trap"
+ "(target:%#lx, address:%p, size:%#lx,"
+ " mask:%#lx, flags:%#lx, cur_prot:%#lx)",
+ ARG1, *(void**)ARG2, ARG3, ARG4, ARG5, ARG6);
+ PRE_MEM_WRITE("kernelrpc_mach_vm_map_trap(address)", ARG2, sizeof(void*));
+}
+POST(kernelrpc_mach_vm_map_trap)
+{
+ PRINT("-> address:%p", *(void**)ARG2);
+ if (ML_(safe_to_deref)((void*)ARG2, sizeof(void*))) {
+ POST_MEM_WRITE(ARG2, sizeof(void*));
+ }
+ ML_(notify_core_and_tool_of_mmap)(
+ *(mach_vm_address_t*)ARG2, ARG3,
+ VKI_PROT_READ|VKI_PROT_WRITE, VKI_MAP_ANON, -1, 0);
+ // ML_(sync_mappings)("after", "kernelrpc_mach_vm_map_trap", 0);
+}
+
+PRE(kernelrpc_mach_port_construct_trap)
+{
+ PRINT("kernelrpc_mach_port_construct_trap(FIXME,ARGUMENTS_UNKNOWN)");
+}
+
+PRE(kernelrpc_mach_port_destruct_trap)
+{
+ PRINT("kernelrpc_mach_port_destruct_trap(FIXME,ARGUMENTS_UNKNOWN)");
+}
+
+PRE(kernelrpc_mach_port_guard_trap)
+{
+ PRINT("kernelrpc_mach_port_guard_trap(FIXME)");
+}
+
+PRE(kernelrpc_mach_port_unguard_trap)
+{
+ PRINT("kernelrpc_mach_port_unguard_trap(FIXME)");
+}
+
+#endif /* DARWIN_VERS >= DARWIN_10_9 */
+
+
+/* ---------------------------------------------------------------------
syscall tables
------------------------------------------------------------------ */