40 lines
1 KiB
C
40 lines
1 KiB
C
|
/* SPDX-License-Identifier: GPL-2.0 */
|
||
|
#ifndef JSON_H
|
||
|
#define JSON_H 1
|
||
|
|
||
|
#include "jsmn.h"
|
||
|
|
||
|
jsmntok_t *parse_json(const char *fn, char **map, size_t *size, int *len);
|
||
|
void free_json(char *map, size_t size, jsmntok_t *tokens);
|
||
|
int json_line(char *map, jsmntok_t *t);
|
||
|
const char *json_name(jsmntok_t *t);
|
||
|
int json_streq(char *map, jsmntok_t *t, const char *s);
|
||
|
int json_len(jsmntok_t *t);
|
||
|
|
||
|
extern int verbose;
|
||
|
|
||
|
#include <stdbool.h>
|
||
|
|
||
|
extern int eprintf(int level, int var, const char *fmt, ...);
|
||
|
#define pr_fmt(fmt) fmt
|
||
|
|
||
|
#define pr_err(fmt, ...) \
|
||
|
eprintf(0, verbose, pr_fmt(fmt), ##__VA_ARGS__)
|
||
|
|
||
|
#define pr_info(fmt, ...) \
|
||
|
eprintf(1, verbose, pr_fmt(fmt), ##__VA_ARGS__)
|
||
|
|
||
|
#define pr_debug(fmt, ...) \
|
||
|
eprintf(2, verbose, pr_fmt(fmt), ##__VA_ARGS__)
|
||
|
|
||
|
#ifndef roundup
|
||
|
#define roundup(x, y) ( \
|
||
|
{ \
|
||
|
const typeof(y) __y = y; \
|
||
|
(((x) + (__y - 1)) / __y) * __y; \
|
||
|
} \
|
||
|
)
|
||
|
#endif
|
||
|
|
||
|
#endif
|