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