This source file includes following definitions.
- i915_prandom_u32_max_state
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 #ifndef __I915_SELFTESTS_RANDOM_H__
26 #define __I915_SELFTESTS_RANDOM_H__
27
28 #include <linux/math64.h>
29 #include <linux/random.h>
30
31 #include "../i915_selftest.h"
32
33 #define I915_RND_STATE_INITIALIZER(x) ({ \
34 struct rnd_state state__; \
35 prandom_seed_state(&state__, (x)); \
36 state__; \
37 })
38
39 #define I915_RND_STATE(name__) \
40 struct rnd_state name__ = I915_RND_STATE_INITIALIZER(i915_selftest.random_seed)
41
42 #define I915_RND_SUBSTATE(name__, parent__) \
43 struct rnd_state name__ = I915_RND_STATE_INITIALIZER(prandom_u32_state(&(parent__)))
44
45 u64 i915_prandom_u64_state(struct rnd_state *rnd);
46
47 static inline u32 i915_prandom_u32_max_state(u32 ep_ro, struct rnd_state *state)
48 {
49 return upper_32_bits(mul_u32_u32(prandom_u32_state(state), ep_ro));
50 }
51
52 unsigned int *i915_random_order(unsigned int count,
53 struct rnd_state *state);
54 void i915_random_reorder(unsigned int *order,
55 unsigned int count,
56 struct rnd_state *state);
57
58 void i915_prandom_shuffle(void *arr, size_t elsz, size_t count,
59 struct rnd_state *state);
60
61 #endif