xref: /aosp_15_r20/external/musl/src/temp/__randname.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #include <time.h>
2*c9945492SAndroid Build Coastguard Worker #include <stdint.h>
3*c9945492SAndroid Build Coastguard Worker #include "pthread_impl.h"
4*c9945492SAndroid Build Coastguard Worker 
5*c9945492SAndroid Build Coastguard Worker /* This assumes that a check for the
6*c9945492SAndroid Build Coastguard Worker    template size has already been made */
__randname(char * template)7*c9945492SAndroid Build Coastguard Worker char *__randname(char *template)
8*c9945492SAndroid Build Coastguard Worker {
9*c9945492SAndroid Build Coastguard Worker 	int i;
10*c9945492SAndroid Build Coastguard Worker 	struct timespec ts;
11*c9945492SAndroid Build Coastguard Worker 	unsigned long r;
12*c9945492SAndroid Build Coastguard Worker 
13*c9945492SAndroid Build Coastguard Worker 	__clock_gettime(CLOCK_REALTIME, &ts);
14*c9945492SAndroid Build Coastguard Worker 	r = ts.tv_sec + ts.tv_nsec + __pthread_self()->tid * 65537UL;
15*c9945492SAndroid Build Coastguard Worker 	for (i=0; i<6; i++, r>>=5)
16*c9945492SAndroid Build Coastguard Worker 		template[i] = 'A'+(r&15)+(r&16)*2;
17*c9945492SAndroid Build Coastguard Worker 
18*c9945492SAndroid Build Coastguard Worker 	return template;
19*c9945492SAndroid Build Coastguard Worker }
20