Defines | Functions | Variables

rand.c File Reference

Include dependency graph for rand.c:

Defines

#define BLOCK_SIZE   64

Functions

static void vlc_rand_init (void)
void vlc_rand_bytes (void *buf, size_t len)
static void init_rand48 (void)
double vlc_drand48 (void)
 PRNG uniformly distributed between 0.0 and 1.0 with 48-bits precision.
long vlc_lrand48 (void)
 PRNG uniformly distributed between 0 and 2^32 - 1.
long vlc_mrand48 (void)
 PRNG uniformly distributed between -2^32 and 2^32 - 1.

Variables

static uint8_t okey [64]
static uint8_t ikey [64]
struct {
   bool   init
   unsigned short   subi [3]
   vlc_mutex_t   lock
rand48

Define Documentation

#define BLOCK_SIZE   64

Function Documentation

static void init_rand48 ( void   )  [static]

References rand48, subi, and vlc_rand_bytes().

Referenced by vlc_drand48(), vlc_lrand48(), and vlc_mrand48().

double vlc_drand48 ( void   ) 

PRNG uniformly distributed between 0.0 and 1.0 with 48-bits precision.

Note:
Contrary to POSIX drand48(), this function is thread-safe.
Warning:
Series generated by this function are not reproducible. Use erand48() if you need reproducible series.
Returns:
a double value within [0.0, 1.0] inclusive

References erand48(), init_rand48(), rand48, vlc_mutex_lock(), and vlc_mutex_unlock().

long vlc_lrand48 ( void   ) 

PRNG uniformly distributed between 0 and 2^32 - 1.

Note:
Contrary to POSIX lrand48(), this function is thread-safe.
Warning:
Series generated by this function are not reproducible. Use nrand48() if you need reproducible series.
Returns:
an integral value within [0.0, 2^32-1] inclusive

References init_rand48(), nrand48(), rand48, vlc_mutex_lock(), and vlc_mutex_unlock().

Referenced by ResetCurrentlyPlaying().

long vlc_mrand48 ( void   ) 

PRNG uniformly distributed between -2^32 and 2^32 - 1.

Note:
Contrary to POSIX mrand48(), this function is thread-safe.
Warning:
Series generated by this function are not reproducible. Use jrand48() if you need reproducible series.
Returns:
an integral value within [-2^32, 2^32-1] inclusive

References init_rand48(), jrand48(), rand48, vlc_mutex_lock(), and vlc_mutex_unlock().

Referenced by httpd_StreamCallBack(), input_item_add_subitem_tree(), and playlist_ItemArraySort().

void vlc_rand_bytes ( void *  buf,
size_t  len 
)
static void vlc_rand_init ( void   )  [static]

References ikey, okey, and vlc_open().

Referenced by vlc_rand_bytes().


Variable Documentation

uint8_t ikey[64] [static]

Referenced by vlc_rand_bytes(), and vlc_rand_init().

bool init
uint8_t okey[64] [static]

Referenced by vlc_rand_bytes(), and vlc_rand_init().

struct { ... } rand48 [static]
unsigned short subi[3]

Referenced by init_rand48().

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines