--- parser3/src/include/pa_random.h 2009/08/27 10:21:18 1.2 +++ parser3/src/include/pa_random.h 2023/11/16 23:54:54 1.12 @@ -1,36 +1,27 @@ /** @file Parser: random related functions. - Copyright (c) 2001-2009 ArtLebedev Group (http://www.artlebedev.com) - Author: Alexandr Petrosian (http://paf.design.ru) + Copyright (c) 2001-2023 Art. Lebedev Studio (http://www.artlebedev.com) + Authors: Konstantin Morshnev , Alexandr Petrosian */ #ifndef PA_RANDOM_H #define PA_RANDOM_H -static const char * const IDENT_RANDOM_H="$Date: 2009/08/27 10:21:18 $"; +#define IDENT_PA_RANDOM_H "$Id: pa_random.h,v 1.12 2023/11/16 23:54:54 moko Exp $" #include "pa_types.h" -#define MAX_UINT 0xFFFFFFFFu - void random(void *buffer, size_t size); -static inline int _random(uint top) { - uint raw; +static inline int _random(int top) { + uint32_t raw; random(&raw, sizeof(raw)); - return int(double(raw) / MAX_UINT * top ); + return int( double(raw) / ((double)UINT_MAX+1) * top ); } -/// to hell with extra bytes on 64bit platforms -struct uuid { - unsigned int time_low; - unsigned short time_mid; - unsigned short time_hi_and_version; - unsigned short clock_seq; - unsigned char node[6]; -}; - -uuid get_uuid(); +char *get_uuid_cstr(bool lower, bool solid); +char *get_uuid7_cstr(bool lower, bool solid); +char *get_uuid_boundary(); #endif