void VG_(show_open_ports)(void);
+void ML_(sync_mappings)(const HChar *when, const HChar *where, Int num);
+
// Unix syscalls.
// GEN = it uses the generic wrapper
// NYI = wrapper not yet implemented in Valgrind
sync_mappings
------------------------------------------------------------------ */
-static void sync_mappings(const HChar *when, const HChar *where, Int num)
+void ML_(sync_mappings)(const HChar *when, const HChar *where, Int num)
{
// Usually the number of segments added/removed in a single calls is very
// small e.g. 1. But it sometimes gets up to at least 100 or so (eg. for
// PRINT("UNHANDLED reply %d", mh->msgh_id);
// Assume the call may have mapped or unmapped memory
- sync_mappings("after", "mach_msg_receive", 0);
+ ML_(sync_mappings)("after", "mach_msg_receive", 0);
}
PRE(mach_msg_receive)
POST(mach_msg_unhandled)
{
- sync_mappings("after", "mach_msg_unhandled", 0);
+ ML_(sync_mappings)("after", "mach_msg_unhandled", 0);
}
POST(iokit_user_client_trap)
{
- sync_mappings("after", "iokit_user_client_trap", ARG2);
+ ML_(sync_mappings)("after", "iokit_user_client_trap", ARG2);
}
// client allocated stack
find_stack_segment(tst->tid, sp);
}
- VG_(am_do_sync_check)("after", "pthread_hijack", 0);
+ ML_(sync_mappings)("after", "pthread_hijack", 0);
// DDD: should this be here rather than in POST(sys_bsdthread_create)?
// But we don't have ptid here...
stack-VKI_PAGE_SIZE, VKI_PAGE_SIZE,
0, VKI_MAP_PRIVATE, -1, 0);
- VG_(am_do_sync_check)("after", "wqthread_hijack", 0);
+ ML_(sync_mappings)("after", "wqthread_hijack", 0);
// Go!
/* Same comments as the 'release' in the then-clause.