xenocara/app/xlockmore/xlock/random.h
2006-11-26 11:07:42 +00:00

109 lines
2.0 KiB
C

#ifndef _RANDOM_H_
#define _RANDOM_H_
#if !defined( lint ) && !defined( SABER )
/* #ident "@(#)random.h 4.14 99/06/17 xlockmore" */
#endif
/*-
* Random stuff
*
* See xlock.c for copying information.
*
* Revision History:
* 17-06-99: Started log. :)
*/
/*** random number generator ***/
/* defaults */
#ifdef STANDALONE
/*-
* Compatibility with the xlockmore RNG API
* (note that the xlockmore hacks never expect negative numbers.)
*/
#define LRAND() ((long) (random() & 0x7fffffff))
#define NRAND(n) ((int) (LRAND() % (n)))
#define MAXRAND (2147483648.0) /* unsigned 1<<31 as a float */
#define SRAND(n) /* already seeded by screenhack.c */
#else /* STANDALONE */
#ifdef HAVE_RAND48
#define SRAND srand48
#define LRAND lrand48
#define MAXRAND (2147483648.0)
#ifndef DECLARED_SRAND48
#ifdef __cplusplus
extern "C" {
#endif
#ifndef __GLIBC__
extern void srand48(long int);
extern long int lrand48(void);
#endif
#ifdef __cplusplus
}
#endif
#endif
#else /* HAVE_RAND48 */
#ifdef HAVE_RANDOM
#define SRAND srandom
#define LRAND random
#define MAXRAND (2147483648.0)
#ifdef __cplusplus
extern "C" {
#endif
extern void srandom(unsigned int);
extern long int random(void);
#ifdef __cplusplus
}
#endif
#else /* HAVE_RANDOM */
#ifdef HAVE_RAND
#define SRAND srand
#define LRAND rand
#ifdef __cplusplus
extern "C" {
#endif
extern void srand(unsigned int);
extern int rand(void);
#ifdef __cplusplus
}
#endif
#ifdef AIXV3
#define MAXRAND (2147483648.0)
#else
#define MAXRAND (32768.0)
#endif
#endif /* HAVE_RAND */
#endif /* HAVE_RANDOM */
#endif /* HAVE_RAND48 */
#ifndef SRAND
#ifdef __cplusplus
extern "C" {
#endif
extern void SetRNG(long int s);
#ifdef __cplusplus
}
#endif
#define SRAND(X) SetRNG((long) X)
#endif
#ifndef LRAND
#ifdef __cplusplus
extern "C" {
#endif
extern long LongRNG(void);
#ifdef __cplusplus
}
#endif
extern long LongRNG(void);
#define LRAND() LongRNG()
#endif
#ifndef MAXRAND
#define MAXRAND (2147483648.0)
#endif
#define NRAND(X) ((int)(LRAND()%(X)))
#endif /* STANDALONE */
#endif /* _RANDOM_H_ */