Ah, ok. So, since mach_absolute_time appears to return the number of "ticks" since last reboot, we'd need to add on the microseconds corresponding to the unix time of the boot time.

Alternatively, we could initialize a static value for the unix time and mach_absolute_time on the first call to this function (i.e. in the conditional you already have), and then add this static unix time to the elapsed microseconds between the current mach_absolute_time and the static mach_absolute_time. (hopefully that makes sense...)