git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
remove experimental tags from all symbol definitions
[dpdk.git]
/
lib
/
librte_eal
/
common
/
rte_random.c
diff --git
a/lib/librte_eal/common/rte_random.c
b/lib/librte_eal/common/rte_random.c
index
3d9b9b7
..
57ec8fb
100644
(file)
--- a/
lib/librte_eal/common/rte_random.c
+++ b/
lib/librte_eal/common/rte_random.c
@@
-137,7
+137,7
@@
rte_rand(void)
return __rte_rand_lfsr258(state);
}
return __rte_rand_lfsr258(state);
}
-uint64_t
__rte_experimental
+uint64_t
rte_rand_max(uint64_t upper_bound)
{
struct rte_rand_state *state;
rte_rand_max(uint64_t upper_bound)
{
struct rte_rand_state *state;
@@
-189,14
+189,13
@@
__rte_random_initial_seed(void)
return ge_seed;
#endif
#ifdef RTE_MACHINE_CPUFLAG_RDSEED
return ge_seed;
#endif
#ifdef RTE_MACHINE_CPUFLAG_RDSEED
- unsigned int rdseed_
rc
;
- unsigned
long long rdseed_seed
;
+ unsigned int rdseed_
low
;
+ unsigned
int rdseed_high
;
/* first fallback: rdseed instruction, if available */
/* first fallback: rdseed instruction, if available */
- rdseed_rc = _rdseed64_step(&rdseed_seed);
-
- if (rdseed_rc == 1)
- return (uint64_t)rdseed_seed;
+ if (_rdseed32_step(&rdseed_low) == 1 &&
+ _rdseed32_step(&rdseed_high) == 1)
+ return (uint64_t)rdseed_low | ((uint64_t)rdseed_high << 32);
#endif
/* second fallback: seed using rdtsc */
return rte_get_timer_cycles();
#endif
/* second fallback: seed using rdtsc */
return rte_get_timer_cycles();