power_play/src/base/base_uid.c
2025-07-28 15:58:03 -05:00

23 lines
552 B
C

/* Returns a uid generated from the system's random number generator */
struct uid uid_true_rand(void)
{
struct uid res = ZI;
rand_true(STRING_FROM_STRUCT(&res));
return res;
}
/* Combines 2 uids into a new uid */
struct uid uid_combine(struct uid a, struct uid b)
{
struct uid res;
res.hi = (a.hi * 3) + b.hi;
res.lo = (a.lo * 3) + b.lo;
res.hi += res.lo;
res.lo += res.hi;
res.hi = rand_u64_from_seed(res.hi);
res.lo = rand_u64_from_seed(res.lo);
res.hi += res.lo;
res.lo += res.hi;
return res;
}