xref: /OK3568_Linux_fs/kernel/tools/perf/pmu-events/json.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */
2*4882a593Smuzhiyun #ifndef JSON_H
3*4882a593Smuzhiyun #define JSON_H 1
4*4882a593Smuzhiyun 
5*4882a593Smuzhiyun #include "jsmn.h"
6*4882a593Smuzhiyun 
7*4882a593Smuzhiyun jsmntok_t *parse_json(const char *fn, char **map, size_t *size, int *len);
8*4882a593Smuzhiyun void free_json(char *map, size_t size, jsmntok_t *tokens);
9*4882a593Smuzhiyun int json_line(char *map, jsmntok_t *t);
10*4882a593Smuzhiyun const char *json_name(jsmntok_t *t);
11*4882a593Smuzhiyun int json_streq(char *map, jsmntok_t *t, const char *s);
12*4882a593Smuzhiyun int json_len(jsmntok_t *t);
13*4882a593Smuzhiyun 
14*4882a593Smuzhiyun extern int verbose;
15*4882a593Smuzhiyun 
16*4882a593Smuzhiyun #include <stdbool.h>
17*4882a593Smuzhiyun 
18*4882a593Smuzhiyun extern int eprintf(int level, int var, const char *fmt, ...);
19*4882a593Smuzhiyun #define pr_fmt(fmt)	fmt
20*4882a593Smuzhiyun 
21*4882a593Smuzhiyun #define pr_err(fmt, ...) \
22*4882a593Smuzhiyun 	eprintf(0, verbose, pr_fmt(fmt), ##__VA_ARGS__)
23*4882a593Smuzhiyun 
24*4882a593Smuzhiyun #define pr_info(fmt, ...) \
25*4882a593Smuzhiyun 	eprintf(1, verbose, pr_fmt(fmt), ##__VA_ARGS__)
26*4882a593Smuzhiyun 
27*4882a593Smuzhiyun #define pr_debug(fmt, ...) \
28*4882a593Smuzhiyun 	eprintf(2, verbose, pr_fmt(fmt), ##__VA_ARGS__)
29*4882a593Smuzhiyun 
30*4882a593Smuzhiyun #ifndef roundup
31*4882a593Smuzhiyun #define roundup(x, y) (                                \
32*4882a593Smuzhiyun {                                                      \
33*4882a593Smuzhiyun         const typeof(y) __y = y;                       \
34*4882a593Smuzhiyun         (((x) + (__y - 1)) / __y) * __y;               \
35*4882a593Smuzhiyun }                                                      \
36*4882a593Smuzhiyun )
37*4882a593Smuzhiyun #endif
38*4882a593Smuzhiyun 
39*4882a593Smuzhiyun #endif
40