summaryrefslogtreecommitdiff
path: root/src/clib/rand.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/clib/rand.c')
-rw-r--r--src/clib/rand.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/clib/rand.c b/src/clib/rand.c
new file mode 100644
index 00000000..6b810060
--- /dev/null
+++ b/src/clib/rand.c
@@ -0,0 +1,25 @@
+/*
+ * Copied from the ANSI C standard 4.10.2.2.
+ */
+#include "db_config.h"
+
+#include "db_int.h"
+
+/*
+ * rand, srand --
+ *
+ * PUBLIC: #ifndef HAVE_RAND
+ * PUBLIC: int rand __P((void));
+ * PUBLIC: void srand __P((unsigned int));
+ * PUBLIC: #endif
+ */
+int rand(void) /* RAND_MAX assumed to be 32767 */
+{
+ DB_GLOBAL(rand_next) = DB_GLOBAL(rand_next) * 1103515245 + 12345;
+ return (unsigned int) (DB_GLOBAL(rand_next)/65536) % 32768;
+}
+
+void srand(unsigned int seed)
+{
+ DB_GLOBAL(rand_next) = seed;
+}