perf: Rename the ros_ core_set code
[akaros.git] / tools / dev-util / perf / akaros.h
1 /* Copyright (c) 2015 Google Inc
2  * Davide Libenzi <dlibenzi@google.com>
3  * See LICENSE for details.
4  */
5
6 #pragma once
7
8 #include <ros/arch/arch.h>
9 #include <ros/common.h>
10 #include <sys/types.h>
11 #include <stdint.h>
12 #include <stdio.h>
13 #include <limits.h>
14 #include <parlib/parlib.h>
15 #include <parlib/bitmask.h>
16
17 __BEGIN_DECLS
18
19 #define CORE_SET_SIZE BYTES_FOR_BITMASK(MAX_NUM_CORES)
20
21 struct core_set {
22         DECL_BITMASK(core_set, MAX_NUM_CORES);
23 };
24
25 void parlib_get_ll_core_set(struct core_set *cores);
26 size_t parlib_nr_ll_cores(void);
27 size_t parlib_nr_total_cores(void);
28 void parlib_parse_cores(const char *str, struct core_set *cores);
29 void parlib_get_all_core_set(struct core_set *cores);
30 void parlib_get_none_core_set(struct core_set *cores);
31 void parlib_not_core_set(struct core_set *dcs);
32 void parlib_and_core_sets(struct core_set *dcs, const struct core_set *scs);
33 void parlib_or_core_sets(struct core_set *dcs, const struct core_set *scs);
34
35 static inline void parlib_set_core(struct core_set *cores, size_t coreid)
36 {
37         SET_BITMASK_BIT(cores->core_set, coreid);
38 }
39
40 static inline void parlib_clear_core(struct core_set *cores, size_t coreid)
41 {
42         CLR_BITMASK_BIT(cores->core_set, coreid);
43 }
44
45 static inline bool parlib_get_core(const struct core_set *cores, size_t coreid)
46 {
47         return GET_BITMASK_BIT(cores->core_set, coreid);
48 }
49
50 __END_DECLS