From: Michael Jeanson Date: Mon, 3 Jul 2023 18:38:08 +0000 (-0400) Subject: cleanup: move rand_r compat code to tests X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=commitdiff_plain;h=6b071d73cffc66df0bdb9ee3c062143f06923c78 cleanup: move rand_r compat code to tests This compat code is only used in the tests, move it there as it should probably not be used in the library. Change-Id: I0a36e790c236bb90d07a711af9cc6f8388fa4c81 Signed-off-by: Michael Jeanson Signed-off-by: Mathieu Desnoyers --- diff --git a/src/Makefile.am b/src/Makefile.am index ede2669..b555c81 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -9,7 +9,7 @@ AM_CPPFLAGS += -I$(top_srcdir)/src AM_LDFLAGS=-version-info $(URCU_LIBRARY_VERSION) $(LT_NO_UNDEFINED) dist_noinst_HEADERS = urcu-die.h urcu-wait.h compat-getcpu.h \ - compat-rand.h urcu-utils.h compat-smp.h + urcu-utils.h compat-smp.h COMPAT = compat_arch.c compat_futex.c diff --git a/src/compat-rand.h b/src/compat-rand.h deleted file mode 100644 index 42fbb30..0000000 --- a/src/compat-rand.h +++ /dev/null @@ -1,49 +0,0 @@ -// SPDX-FileCopyrightText: 1996 Ulrich Drepper -// SPDX-FileCopyrightText: 2013 Pierre-Luc St-Charles -// -// SPDX-License-Identifier: LGPL-2.1-or-later - -#ifndef _COMPAT_RAND_H -#define _COMPAT_RAND_H - -/* - * Userspace RCU library - rand/rand_r Compatibility Header - * - * Note: this file is only used to simplify the code required to - * use the 'rand_r(...)' system function across multiple platforms, - * which might not always be referenced the same way. - */ - -#ifndef HAVE_RAND_R -/* - * Reentrant random function from POSIX.1c. - * Copyright (C) 1996, 1999 Free Software Foundation, Inc. - * This file is part of the GNU C Library. - * Contributed by Ulrich Drepper >, 1996. - */ -static inline int rand_r(unsigned int *seed) -{ - unsigned int next = *seed; - int result; - - next *= 1103515245; - next += 12345; - result = (unsigned int) (next / 65536) % 2048; - - next *= 1103515245; - next += 12345; - result <<= 10; - result ^= (unsigned int) (next / 65536) % 1024; - - next *= 1103515245; - next += 12345; - result <<= 10; - result ^= (unsigned int) (next / 65536) % 1024; - - *seed = next; - - return result; -} -#endif /* HAVE_RAND_R */ - -#endif /* _COMPAT_RAND_H */ diff --git a/tests/common/Makefile.am b/tests/common/Makefile.am index 2cdc273..af6d89f 100644 --- a/tests/common/Makefile.am +++ b/tests/common/Makefile.am @@ -2,12 +2,13 @@ # # SPDX-License-Identifier: MIT -AM_CPPFLAGS += -I$(top_srcdir)/src +AM_CPPFLAGS += -I$(top_srcdir)/src -I$(top_srcdir)/tests/common -noinst_HEADERS = thread-id.h +noinst_HEADERS = \ + api.h \ + compat-rand.h \ + thread-id.h noinst_LTLIBRARIES = libdebug-yield.la libdebug_yield_la_SOURCES = debug-yield.c debug-yield.h - -EXTRA_DIST = api.h diff --git a/tests/common/compat-rand.h b/tests/common/compat-rand.h new file mode 100644 index 0000000..42fbb30 --- /dev/null +++ b/tests/common/compat-rand.h @@ -0,0 +1,49 @@ +// SPDX-FileCopyrightText: 1996 Ulrich Drepper +// SPDX-FileCopyrightText: 2013 Pierre-Luc St-Charles +// +// SPDX-License-Identifier: LGPL-2.1-or-later + +#ifndef _COMPAT_RAND_H +#define _COMPAT_RAND_H + +/* + * Userspace RCU library - rand/rand_r Compatibility Header + * + * Note: this file is only used to simplify the code required to + * use the 'rand_r(...)' system function across multiple platforms, + * which might not always be referenced the same way. + */ + +#ifndef HAVE_RAND_R +/* + * Reentrant random function from POSIX.1c. + * Copyright (C) 1996, 1999 Free Software Foundation, Inc. + * This file is part of the GNU C Library. + * Contributed by Ulrich Drepper >, 1996. + */ +static inline int rand_r(unsigned int *seed) +{ + unsigned int next = *seed; + int result; + + next *= 1103515245; + next += 12345; + result = (unsigned int) (next / 65536) % 2048; + + next *= 1103515245; + next += 12345; + result <<= 10; + result ^= (unsigned int) (next / 65536) % 1024; + + next *= 1103515245; + next += 12345; + result <<= 10; + result ^= (unsigned int) (next / 65536) % 1024; + + *seed = next; + + return result; +} +#endif /* HAVE_RAND_R */ + +#endif /* _COMPAT_RAND_H */