X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=libcfs%2Flibcfs%2Fprng.c;h=1daf29d524aea1342ab1b91f2cfb8b0997e5708f;hb=e02e613f411d4273c9c1c99ee88121e641ddb4c2;hp=f1568f45c2364a5d306de2be758c53acb6cede7b;hpb=711e142d055fda62be482f74f2f73acac5e7e453;p=fs%2Flustre-release.git diff --git a/libcfs/libcfs/prng.c b/libcfs/libcfs/prng.c index f1568f4..1daf29d 100644 --- a/libcfs/libcfs/prng.c +++ b/libcfs/libcfs/prng.c @@ -1,6 +1,4 @@ -/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=8:tabstop=8: - * +/* * GPL HEADER START * * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -41,10 +39,6 @@ * algorithm recommended by Marsaglia */ -#ifndef EXPORT_SYMTAB -# define EXPORT_SYMTAB -#endif - #include /* @@ -87,7 +81,7 @@ unsigned int cfs_rand(void) return ((seed_x << 16) + (seed_y & 65535)); } -CFS_EXPORT_SYMBOL(cfs_rand); +EXPORT_SYMBOL(cfs_rand); /** * cfs_srand - sets the inital seed @@ -104,7 +98,7 @@ void cfs_srand(unsigned int seed1, unsigned int seed2) if (seed2) seed_y = seed2; } -CFS_EXPORT_SYMBOL(cfs_srand); +EXPORT_SYMBOL(cfs_srand); /** * cfs_get_random_bytes - generate a bunch of random numbers @@ -115,31 +109,31 @@ CFS_EXPORT_SYMBOL(cfs_srand); */ void cfs_get_random_bytes(void *buf, int size) { - int *p = buf; - int rem, tmp; + int *p = buf; + int rem, tmp; - LASSERT(size >= 0); + LASSERT(size >= 0); - rem = min((int)((unsigned long)buf & (sizeof(int) - 1)), size); - if (rem) { - cfs_get_random_bytes_prim(&tmp, sizeof(tmp)); - tmp ^= cfs_rand(); - memcpy(buf, &tmp, rem); - p = buf + rem; - size -= rem; - } + rem = min((int)((unsigned long)buf & (sizeof(int) - 1)), size); + if (rem) { + get_random_bytes(&tmp, sizeof(tmp)); + tmp ^= cfs_rand(); + memcpy(buf, &tmp, rem); + p = buf + rem; + size -= rem; + } - while (size >= sizeof(int)) { - cfs_get_random_bytes_prim(&tmp, sizeof(tmp)); - *p = cfs_rand() ^ tmp; - size -= sizeof(int); - p++; - } - buf = p; - if (size) { - cfs_get_random_bytes_prim(&tmp, sizeof(tmp)); - tmp ^= cfs_rand(); - memcpy(buf, &tmp, size); - } + while (size >= sizeof(int)) { + get_random_bytes(&tmp, sizeof(tmp)); + *p = cfs_rand() ^ tmp; + size -= sizeof(int); + p++; + } + buf = p; + if (size) { + get_random_bytes(&tmp, sizeof(tmp)); + tmp ^= cfs_rand(); + memcpy(buf, &tmp, size); + } } -CFS_EXPORT_SYMBOL(cfs_get_random_bytes); +EXPORT_SYMBOL(cfs_get_random_bytes);