/* return wall time in nsecs */ solo5_time_t solo5_clock_wall(void) { if (use_pvclock) return pvclock_monotonic() + pvclock_epochoffset(); else return tscclock_monotonic() + tscclock_epochoffset(); }
void generate_mac_addr(uint8_t *addr) { const char *subject_name = muen_get_subject_name(); uint64_t data; int i; data = (muen_get_sched_start() << 32) | muen_get_sched_end(); data ^= tscclock_epochoffset(); for (i = 0; i < 6; i++) { addr[i] = subject_name[i]; addr[i] ^= (uint8_t)(data >> (i * 8)); } /* clear multicast and set local assignment bit */ addr[0] &= 0xfe; addr[0] |= 0x02; }