diff options
author | Jo-Philipp Wich <jo@mein.io> | 2022-04-07 22:10:41 +0200 |
---|---|---|
committer | Jo-Philipp Wich <jo@mein.io> | 2022-04-07 22:12:58 +0200 |
commit | 33f1e0b0926e973fb5ae445e9a995848762143bb (patch) | |
tree | 86f04814801f275c955e97e16e39736bc6186121 /json-c-compat.h | |
parent | 72292e9a86ac32e64da54bf27d38553f52161b89 (diff) |
treewide: move json-c compat shims into internal header file
Do not expose the json-c compat functions in ucode's public headers to
avoid clashes when building on systems with modern json-c.
Also remove some explicit json-c/json-c.h includes in places where it is
not needed.
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Diffstat (limited to 'json-c-compat.h')
-rw-r--r-- | json-c-compat.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/json-c-compat.h b/json-c-compat.h new file mode 100644 index 0000000..da24a0f --- /dev/null +++ b/json-c-compat.h @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2022 Jo-Philipp Wich <jo@mein.io> + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#ifndef JSON_C_COMPAT_H +#define JSON_C_COMPAT_H + +#include <stddef.h> +#include <stdint.h> +#include <json-c/json.h> + + +/* json-c compat */ + +#ifndef HAVE_PARSE_END +static inline size_t json_tokener_get_parse_end(struct json_tokener *tok) { + return (size_t)tok->char_offset; +} +#endif + +#ifndef HAVE_ARRAY_EXT +static inline struct json_object *json_object_new_array_ext(int size) { + (void) size; + return json_object_new_array(); +} +#endif + +#ifndef HAVE_JSON_UINT64 +static inline struct json_object *json_object_new_uint64(uint64_t i) { + return json_object_new_int64((int64_t)i); +} + +static inline uint64_t json_object_get_uint64(const struct json_object *obj) { + return (uint64_t)json_object_get_int64(obj); +} +#endif + +#endif /* JSON_C_COMPAT_H */ |