1 /* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */ 2 #include <precomp.h> 3 #include <ntsecapi.h> 4 #include <internal/tls.h> 5 6 /* 7 * @implemented 8 */ 9 int 10 rand(void) 11 { 12 thread_data_t *data = msvcrt_get_thread_data(); 13 14 /* this is the algorithm used by MSVC, according to 15 * http://en.wikipedia.org/wiki/List_of_pseudorandom_number_generators */ 16 data->random_seed = data->random_seed * 214013 + 2531011; 17 return (data->random_seed >> 16) & RAND_MAX; 18 } 19 20 /* 21 * @implemented 22 */ 23 void 24 srand(unsigned int seed) 25 { 26 thread_data_t *data = msvcrt_get_thread_data(); 27 data->random_seed = seed; 28 } 29