]>
Commit | Line | Data |
---|---|---|
67033d1c PM |
1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef __DCB_H__ | |
3 | #define __DCB_H__ 1 | |
4 | ||
69290c32 | 5 | #include <libmnl/libmnl.h> |
67033d1c PM |
6 | #include <stdbool.h> |
7 | #include <stddef.h> | |
8 | ||
9 | /* dcb.c */ | |
10 | ||
11 | struct dcb { | |
12 | char *buf; | |
13 | struct mnl_socket *nl; | |
14 | bool json_output; | |
6e9687db | 15 | bool stats; |
808dd741 | 16 | bool use_iec; |
67033d1c PM |
17 | }; |
18 | ||
19 | int dcb_parse_mapping(const char *what_key, __u32 key, __u32 max_key, | |
11a72186 PM |
20 | const char *what_value, __u64 value, __u64 max_value, |
21 | void (*set_array)(__u32 index, __u64 value, void *data), | |
67033d1c PM |
22 | void *set_array_data); |
23 | int dcb_cmd_parse_dev(struct dcb *dcb, int argc, char **argv, | |
24 | int (*and_then)(struct dcb *dcb, const char *dev, | |
25 | int argc, char **argv), | |
26 | void (*help)(void)); | |
27 | ||
11a72186 PM |
28 | void dcb_set_u8(__u32 key, __u64 value, void *data); |
29 | void dcb_set_u32(__u32 key, __u64 value, void *data); | |
30 | void dcb_set_u64(__u32 key, __u64 value, void *data); | |
67033d1c PM |
31 | |
32 | int dcb_get_attribute(struct dcb *dcb, const char *dev, int attr, | |
33 | void *data, size_t data_len); | |
34 | int dcb_set_attribute(struct dcb *dcb, const char *dev, int attr, | |
35 | const void *data, size_t data_len); | |
69290c32 PM |
36 | int dcb_set_attribute_va(struct dcb *dcb, int command, const char *dev, |
37 | int (*cb)(struct dcb *dcb, struct nlmsghdr *nlh, void *data), | |
38 | void *data); | |
39 | int dcb_set_attribute_bare(struct dcb *dcb, int command, const char *dev, | |
40 | int attr, const void *data, size_t data_len, | |
41 | int response_attr); | |
67033d1c PM |
42 | |
43 | void dcb_print_named_array(const char *json_name, const char *fp_name, | |
44 | const __u8 *array, size_t size, | |
45 | void (*print_array)(const __u8 *, size_t)); | |
46 | void dcb_print_array_u8(const __u8 *array, size_t size); | |
6567cb58 PM |
47 | void dcb_print_array_u64(const __u64 *array, size_t size); |
48 | void dcb_print_array_on_off(const __u8 *array, size_t size); | |
67033d1c PM |
49 | void dcb_print_array_kw(const __u8 *array, size_t array_size, |
50 | const char *const kw[], size_t kw_size); | |
51 | ||
2e36f910 PM |
52 | /* dcb_buffer.c */ |
53 | ||
54 | int dcb_cmd_buffer(struct dcb *dcb, int argc, char **argv); | |
55 | ||
ef15b076 PM |
56 | /* dcb_ets.c */ |
57 | ||
58 | int dcb_cmd_ets(struct dcb *dcb, int argc, char **argv); | |
59 | ||
117939d9 PM |
60 | /* dcb_maxrate.c */ |
61 | ||
62 | int dcb_cmd_maxrate(struct dcb *dcb, int argc, char **argv); | |
63 | ||
6567cb58 PM |
64 | /* dcb_pfc.c */ |
65 | ||
66 | int dcb_cmd_pfc(struct dcb *dcb, int argc, char **argv); | |
67 | ||
67033d1c | 68 | #endif /* __DCB_H__ */ |