b.liu | e958203 | 2025-04-17 19:18:16 +0800 | [diff] [blame^] | 1 | /* SPDX-License-Identifier: GPL-2.0 */ |
| 2 | #ifndef __DRM_RANDOM_H__ |
| 3 | #define __DRM_RANDOM_H__ |
| 4 | |
| 5 | /* This is a temporary home for a couple of utility functions that should |
| 6 | * be transposed to lib/ at the earliest convenience. |
| 7 | */ |
| 8 | |
| 9 | #include <linux/random.h> |
| 10 | |
| 11 | #define DRM_RND_STATE_INITIALIZER(seed__) ({ \ |
| 12 | struct rnd_state state__; \ |
| 13 | prandom_seed_state(&state__, (seed__)); \ |
| 14 | state__; \ |
| 15 | }) |
| 16 | |
| 17 | #define DRM_RND_STATE(name__, seed__) \ |
| 18 | struct rnd_state name__ = DRM_RND_STATE_INITIALIZER(seed__) |
| 19 | |
| 20 | unsigned int *drm_random_order(unsigned int count, |
| 21 | struct rnd_state *state); |
| 22 | void drm_random_reorder(unsigned int *order, |
| 23 | unsigned int count, |
| 24 | struct rnd_state *state); |
| 25 | |
| 26 | #endif /* !__DRM_RANDOM_H__ */ |