PRINT("host_create_mach_voucher_trap"
"(host:%s, recipes:%#lx, recipes_size:%ld, voucher:%#lx)",
name_for_port(ARG1), ARG2, ARG3, ARG4);
+ // FIXME PJF PRE_REG_READ?
PRE_MEM_READ( "host_create_mach_voucher_trap(recipes)", ARG2, ARG3 );
PRE_MEM_WRITE( "host_create_mach_voucher_trap(voucher)", ARG4, sizeof(mach_port_name_t) );
}
+
POST(host_create_mach_voucher_trap)
{
vg_assert(SUCCESS);
POST_MEM_WRITE( ARG4, sizeof(mach_port_name_t) );
}
+// MACH 72
+// kern_return_t mach_voucher_extract_attr_recipe(ipc_voucher_t voucher,
+// mach_voucher_attr_key_t key,
+// mach_voucher_attr_raw_recipe_t raw_recipe,
+// mach_voucher_attr_raw_recipe_size_t *in_out_size)
+PRE(mach_voucher_extract_attr_recipe_trap)
+{
+ PRINT("mach_voucher_extract_attr_recipe(voucher:%#lx, key:%lu, raw_recipe:%#lx, in_out_size:%#lx)", ARG1, ARG2, ARG3, ARG4);
+ // FIXME PJF add MEM READ/WRITE and POST as needed
+}
+
PRE(task_register_dyld_image_infos)
{
//#pragma pack(4)
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(70)),
#endif
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(71)),
- _____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(72)),
+ MACX_(__NR_mach_voucher_extract_attr_recipe_trap, mach_voucher_extract_attr_recipe_trap),
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(73)),
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(74)),
_____(VG_DARWIN_SYSCALL_CONSTRUCT_MACH(75)),