Luca Dariz, le jeu. 28 déc. 2023 20:42:54 +0100, a ecrit: > + // this emulates maptime() > + struct mapped_time_value *mtime; > + mach_port_t device, memobj; > + int err = device_open (device_priv(), 0, "time", &device); > + ASSERT_RET(err, "device_open"); > + err = device_map (device, VM_PROT_READ, 0, sizeof(*mtime), &memobj, 0); > + ASSERT_RET(err, "device_map"); > + err = mach_port_deallocate (mach_task_self (), device); > + ASSERT_RET(err, "mach_port_deallocate"); > + mtime = 0; > + err = > + vm_map (mach_task_self (), (vm_address_t *)&mtime, sizeof *mtime, 0, 1, > + memobj, 0, 0, VM_PROT_READ, VM_PROT_READ, VM_INHERIT_NONE); > + ASSERT_RET(err, "vm_map"); > + err = mach_port_deallocate (mach_task_self (), memobj); > + ASSERT_RET(err, "mach_port_deallocate");
I'd say try to print the content, so as to check that this did return a pointer that is readable? > + err = vm_deallocate(mach_task_self(), (vm_address_t)mtime, sizeof(*mtime)); > + ASSERT_RET(err, "vm_deallocate"); > +}