]> granicus.if.org Git - strace/blob - number_set.h
tests: implement ioctl_evdev-success-v.test via ioctl_evdev-success.test
[strace] / number_set.h
1 /*
2  * Copyright (c) 2016-2018 Dmitry V. Levin <ldv@altlinux.org>
3  * Copyright (c) 2017-2019 The strace developers.
4  * All rights reserved.
5  *
6  * SPDX-License-Identifier: LGPL-2.1-or-later
7  */
8
9 #ifndef STRACE_NUMBER_SET_H
10 # define STRACE_NUMBER_SET_H
11
12 # include "gcc_compat.h"
13
14 struct number_set;
15
16 extern bool
17 number_set_array_is_empty(const struct number_set *, unsigned int idx);
18
19 extern bool
20 is_number_in_set(unsigned int number, const struct number_set *);
21
22 extern bool
23 is_number_in_set_array(unsigned int number, const struct number_set *, unsigned int idx);
24
25 extern bool
26 is_complete_set(const struct number_set *, unsigned int max_numbers);
27
28 extern void
29 add_number_to_set(unsigned int number, struct number_set *);
30
31 extern void
32 add_number_to_set_array(unsigned int number, struct number_set *, unsigned int idx);
33
34 extern void
35 clear_number_set_array(struct number_set *, unsigned int nmemb);
36
37 extern void
38 invert_number_set_array(struct number_set *, unsigned int nmemb);
39
40 extern struct number_set *
41 alloc_number_set_array(unsigned int nmemb) ATTRIBUTE_MALLOC;
42
43 extern void
44 free_number_set_array(struct number_set *, unsigned int nmemb);
45
46 enum status_t {
47         STATUS_SUCCESSFUL,
48         STATUS_FAILED,
49         STATUS_UNFINISHED,
50         STATUS_UNAVAILABLE,
51         STATUS_DETACHED,
52         NUMBER_OF_STATUSES
53 };
54
55 extern struct number_set *read_set;
56 extern struct number_set *write_set;
57 extern struct number_set *signal_set;
58 extern struct number_set *status_set;
59 extern struct number_set *trace_set;
60
61 #endif /* !STRACE_NUMBER_SET_H */