cpp-common/bt2c/fmt.hpp: use `wise_enum::string_type` in `EnableIfIsWiseEnum` definition
[babeltrace.git] / src / lib / integer-range-set.h
CommitLineData
fb91c0ef 1/*
0235b0db 2 * SPDX-License-Identifier: MIT
fb91c0ef 3 *
0235b0db 4 * Copyright 2019 Philippe Proulx <pproulx@efficios.com>
fb91c0ef
PP
5 *
6 * The Common Trace Format (CTF) Specification is available at
7 * http://www.efficios.com/ctf
8 */
9
0235b0db
MJ
10#ifndef BABELTRACE_INTEGER_RANGE_SET_INTERNAL_H
11#define BABELTRACE_INTEGER_RANGE_SET_INTERNAL_H
12
c4f23e30 13#include <stdbool.h>
fb91c0ef
PP
14#include <glib.h>
15#include <babeltrace2/babeltrace.h>
16
17#include "object.h"
18
19#define BT_INTEGER_RANGE_SET_RANGE_AT_INDEX(_rs, _index) \
d50d46f3 20 (&bt_g_array_index((_rs)->ranges, struct bt_integer_range, (_index)))
fb91c0ef
PP
21
22struct bt_integer_range {
23 union {
24 uint64_t u;
25 int64_t i;
26 } lower;
27 union {
28 uint64_t u;
29 int64_t i;
30 } upper;
31};
32
33struct bt_integer_range_set {
34 struct bt_object base;
35
36 /* Array of `struct bt_integer_range` */
37 GArray *ranges;
38
39 bool frozen;
40};
41
fb91c0ef
PP
42void _bt_integer_range_set_freeze(const struct bt_integer_range_set *range_set);
43
44#ifdef BT_DEV_MODE
45# define bt_integer_range_set_freeze _bt_integer_range_set_freeze
46#else
47# define bt_integer_range_set_freeze(_sc)
48#endif
49
fb91c0ef
PP
50bool bt_integer_range_set_unsigned_has_overlaps(
51 const struct bt_integer_range_set *range_set);
52
fb91c0ef
PP
53bool bt_integer_range_set_signed_has_overlaps(
54 const struct bt_integer_range_set *range_set);
55
56#endif /* BABELTRACE_INTEGER_RANGE_SET_INTERNAL_H */
This page took 0.067415 seconds and 4 git commands to generate.