diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-11-30 22:12:50 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1999-11-30 22:12:50 +0000 |
commit | d0950adfd65d0510424b43c31f19d2f1d8d277a4 (patch) | |
tree | 6d0c8ee17d77495c851099f1ffa751f84b857857 /cpukit/pppd/magic.c | |
parent | Renamed shm.h to shm_driver.h to avoid conflicts with POSIX shm.h. (diff) | |
download | rtems-d0950adfd65d0510424b43c31f19d2f1d8d277a4.tar.bz2 |
Added port of ppp-2.3.5 from Tomasz Domin <dot@comarch.pl> of ComArch SA.
Tomasz only tested this on the mpc823.
The official site for the original source for this PPP implementation is:
ftp://cs.anu.edu.au/pub/software/ppp
NOTE: As of 11/30/1999, the current version of this source is 2.3.10.
Diffstat (limited to 'cpukit/pppd/magic.c')
-rw-r--r-- | cpukit/pppd/magic.c | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/cpukit/pppd/magic.c b/cpukit/pppd/magic.c new file mode 100644 index 0000000000..67d6b6ca90 --- /dev/null +++ b/cpukit/pppd/magic.c @@ -0,0 +1,86 @@ +/* + * magic.c - PPP Magic Number routines. + * + * Copyright (c) 1989 Carnegie Mellon University. + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted + * provided that the above copyright notice and this paragraph are + * duplicated in all such forms and that any documentation, + * advertising materials, and other materials related to such + * distribution and use acknowledge that the software was developed + * by Carnegie Mellon University. The name of the + * University may not be used to endorse or promote products derived + * from this software without specific prior written permission. + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED + * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ + +#ifndef lint +/* static char rcsid[] = "$Id$"; */ +#endif + +#include <stdio.h> +#include <unistd.h> +#include <stdlib.h> +#include <sys/types.h> +#include <sys/time.h> + +#include "pppd.h" +#include "magic.h" + +extern long mrand48 __P((void)); +extern void srand48 __P((long)); + +/* + * magic_init - Initialize the magic number generator. + * + * Attempts to compute a random number seed which will not repeat. + * The current method uses the current hostid, current process ID + * and current time, currently. + */ +void +magic_init() +{ + long seed; + struct timeval t; + + gettimeofday(&t, NULL); + seed = get_host_seed() ^ t.tv_sec ^ t.tv_usec ^ getpid(); + srand48(seed); +} + +/* + * magic - Returns the next magic number. + */ +u_int32_t +magic() +{ + return (u_int32_t) mrand48(); +} + +/* + * Substitute procedures for those systems which don't have + * drand48 et al. + */ +/* #include <stdlib.h> */ +double +drand48() +{ + return (double)rand() / (double)0x7fffffffL; /* 2**31-1 */ +} + +long +mrand48() +{ + return rand(); +} + +void +srand48(seedval) +long seedval; +{ + srand((int)seedval); +} + |