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 Workerchar *__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