diff options
author | Andy Fiddaman <omnios@citrus-it.co.uk> | 2020-12-27 17:47:37 +0000 |
---|---|---|
committer | Andy Fiddaman <omnios@citrus-it.co.uk> | 2021-01-30 17:13:33 +0000 |
commit | b30d193948be5a7794d7ae3ba0ed9c2f72c88e0f (patch) | |
tree | 6a37e590faffb9bb9af66887de645c546445036c /usr/src/lib/libsum/common/sum-prng.c | |
parent | df36e06d12cbf655ddf22339ef8c39fa2b83ebf8 (diff) | |
download | illumos-gate-b30d193948be5a7794d7ae3ba0ed9c2f72c88e0f.tar.gz |
13405 ksh93 update to 2012-08-01
13434 sh: mishandles backslash as last character of a block of input
11750 ksh mkdir builtin doesn't honor special file permissions
9199 ksh93 builtin *grep -v mishandles blank lines, blows up libgcrypt-config
6756 sh (and ksh) have issues with ${1+"$@"}
6520 ksh: sleep could wait forever
4860 ksh93: core in printf
3791 /bin/sh's builtin 'rm' busted: 'rm -f' without arguments returns error
1047 ksh overwrites child core files
880 ksh93 coredumps on 'unset'
499 "interrupted system call" when using "tee" builtin in ksh
Reviewed by: Robert Mustacchi <rm@fingolfin.org>
Reviewed by: Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org>
Reviewed by: Dominik Hassler <hadfl@omnios.org>
Approved by: Rich Lowe <richlowe@richlowe.net>
Diffstat (limited to 'usr/src/lib/libsum/common/sum-prng.c')
-rw-r--r-- | usr/src/lib/libsum/common/sum-prng.c | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/usr/src/lib/libsum/common/sum-prng.c b/usr/src/lib/libsum/common/sum-prng.c deleted file mode 100644 index 71ec34f25e..0000000000 --- a/usr/src/lib/libsum/common/sum-prng.c +++ /dev/null @@ -1,113 +0,0 @@ -/*********************************************************************** -* * -* This software is part of the ast package * -* Copyright (c) 1996-2010 AT&T Intellectual Property * -* and is licensed under the * -* Common Public License, Version 1.0 * -* by AT&T Intellectual Property * -* * -* A copy of the License is available at * -* http://www.opensource.org/licenses/cpl1.0.txt * -* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * -* * -* Information and Software Systems Research * -* AT&T Research * -* Florham Park NJ * -* * -* Glenn Fowler <gsf@research.att.com> * -* * -***********************************************************************/ -#pragma prototyped - -/* - * prng - */ - -#include <fnv.h> - -#define prng_description \ - "32 bit PRNG (pseudo random number generator) hash." -#define prng_options "\ -[+mpy?The 32 bit PRNG multiplier.]:[number:=0x01000193]\ -[+add?The 32 bit PRNG addend.]:[number:=0]\ -[+init?The PRNG initial value. 0xffffffff is used if \anumber\a is omitted.]:?[number:=0x811c9dc5]\ -" -#define prng_match "prng" -#define prng_done long_done -#define prng_print long_print -#define prng_data long_data -#define prng_scale 0 - -typedef uint32_t Prngnum_t; - -typedef struct Prng_s -{ - _SUM_PUBLIC_ - _SUM_PRIVATE_ - _INTEGRAL_PRIVATE_ - Prngnum_t init; - Prngnum_t mpy; - Prngnum_t add; -} Prng_t; - -static Sum_t* -prng_open(const Method_t* method, const char* name) -{ - register Prng_t* sum; - register const char* s; - register const char* t; - register const char* v; - register int i; - - if (sum = newof(0, Prng_t, 1, 0)) - { - sum->method = (Method_t*)method; - sum->name = name; - } - s = name; - while (*(t = s)) - { - for (t = s, v = 0; *s && *s != '-'; s++) - if (*s == '=' && !v) - v = s; - i = (v ? v : s) - t; - if (isdigit(*t) || v && strneq(t, "mpy", i) && (t = v + 1)) - sum->mpy = strtoul(t, NiL, 0); - else if (strneq(t, "add", i)) - sum->add = v ? strtoul(v + 1, NiL, 0) : ~sum->add; - else if (strneq(t, "init", i)) - sum->init = v ? strtoul(v + 1, NiL, 0) : ~sum->init; - if (*s == '-') - s++; - } - if (!sum->mpy) - { - sum->mpy = FNV_MULT; - if (!sum->init) - sum->init = FNV_INIT; - } - return (Sum_t*)sum; -} - -static int -prng_init(Sum_t* p) -{ - Prng_t* sum = (Prng_t*)p; - - sum->sum = sum->init; - return 0; -} - -static int -prng_block(Sum_t* p, const void* s, size_t n) -{ - Prng_t* sum = (Prng_t*)p; - register Prngnum_t c = sum->sum; - register unsigned char* b = (unsigned char*)s; - register unsigned char* e = b + n; - - while (b < e) - c = c * sum->mpy + sum->add + *b++; - sum->sum = c; - return 0; -} |