1
2#ifndef CEPH_CRUSH_MAPPER_H
3#define CEPH_CRUSH_MAPPER_H
4
5
6
7
8
9
10
11
12#include "crush.h"
13
14extern int crush_find_rule(const struct crush_map *map, int ruleset, int type, int size);
15int crush_do_rule(const struct crush_map *map,
16 int ruleno, int x, int *result, int result_max,
17 const __u32 *weight, int weight_max,
18 void *cwin, const struct crush_choose_arg *choose_args);
19
20
21
22
23
24
25
26static inline size_t crush_work_size(const struct crush_map *map,
27 int result_max)
28{
29 return map->working_size + result_max * 3 * sizeof(__u32);
30}
31
32void crush_init_workspace(const struct crush_map *map, void *v);
33
34#endif
35