385207 PPC64, generate_store_FPRF() generates too many Iops
385208 PPC64, xxperm instruction exhausts temporary memory
385210 PPC64, vpermr instruction could exhaust temporary memory
+385279 unhandled syscall: mach:43 (mach_generate_activity_id)
385183 PPC64, Add support for xscmpeqdp, xscmpgtdp, xscmpgedp, xsmincdp instructions
385334 PPC64, fix vpermr, xxperm, xxpermr mask value.
385868 glibc ld.so _dl_runtime_resolve_avx_slow conditional jump warning.
DECL_TEMPLATE(darwin, host_create_mach_voucher_trap);
DECL_TEMPLATE(darwin, task_register_dyld_image_infos);
DECL_TEMPLATE(darwin, task_register_dyld_shared_cache_image_info);
+DECL_TEMPLATE(darwin, mach_generate_activity_id);
#endif /* DARWIN_VERS >= DARWIN_10_12 */
DECL_TEMPLATE(darwin, mach_timebase_info);
}
}
+PRE(mach_generate_activity_id)
+{
+ // munge_www -- no need to call helper
+ PRINT("mach_generate_activity_id"
+ "(target:%s, count:%ld)",
+ name_for_port(ARG1), ARG2);
+ PRE_REG_READ3(long, "mach_generate_activity_id",
+ mach_port_name_t, target, int, count, uint64_t *, activity_id);
+ if (ARG2 <= 0 || ARG2 > MACH_ACTIVITY_ID_COUNT_MAX) {
+ SET_STATUS_Failure( VKI_EINVAL );
+ }
+ if (ML_(safe_to_deref)( (void*)ARG3, sizeof(vki_uint64_t*) )) {
+ PRE_MEM_WRITE( "mach_generate_activity_id(activity_id)", ARG3, sizeof(vki_uint64_t) );
+ } else {
+ SET_STATUS_Failure( VKI_EFAULT );
+ }
+}
+
+POST(mach_generate_activity_id)
+{
+ if (ML_(safe_to_deref)( (void*)ARG3, sizeof(vki_uint64_t*) )) {
+ POST_MEM_WRITE( ARG3, sizeof(vki_uint64_t) );
+ PRINT("-> activity_id:%#llx", *(uint64_t*)ARG3);
+ }
+}
+
#endif /* DARWIN_VERS >= DARWIN_10_12 */
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(42)),
# endif
-# if DARWIN_VERS >= DARWIN_10_10
+# if DARWIN_VERS >= DARWIN_10_12
+ MACXY(__NR_mach_generate_activity_id, mach_generate_activity_id),
+# elif DARWIN_VERS >= DARWIN_10_10
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(43)),
-# else
-# if DARWIN_VERS == DARWIN_10_9
+# elif defined(VGA_x86) || DARWIN_VERS == DARWIN_10_9
// _____(__NR_map_fd),
-# else
-# if defined(VGA_x86)
-// _____(__NR_map_fd),
-# else
+# else
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(43)),
-# endif
-# endif
# endif
// _____(__NR_task_name_for_pid),