1 
2 //===----------------------------------------------------------------------===//
3 //
4 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5 // See https://llvm.org/LICENSE.txt for license information.
6 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef _ITTNOTIFY_TYPES_H_
11 #define _ITTNOTIFY_TYPES_H_
12 
13 typedef enum ___itt_group_id {
14   __itt_group_none = 0,
15   __itt_group_legacy = 1 << 0,
16   __itt_group_control = 1 << 1,
17   __itt_group_thread = 1 << 2,
18   __itt_group_mark = 1 << 3,
19   __itt_group_sync = 1 << 4,
20   __itt_group_fsync = 1 << 5,
21   __itt_group_jit = 1 << 6,
22   __itt_group_model = 1 << 7,
23   __itt_group_splitter_min = 1 << 7,
24   __itt_group_counter = 1 << 8,
25   __itt_group_frame = 1 << 9,
26   __itt_group_stitch = 1 << 10,
27   __itt_group_heap = 1 << 11,
28   __itt_group_splitter_max = 1 << 12,
29   __itt_group_structure = 1 << 12,
30   __itt_group_suppress = 1 << 13,
31   __itt_group_arrays = 1 << 14,
32   __itt_group_module = 1 << 15,
33   __itt_group_all = -1
34 } __itt_group_id;
35 
36 #pragma pack(push, 8)
37 
38 typedef struct ___itt_group_list {
39   __itt_group_id id;
40   const char *name;
41 } __itt_group_list;
42 
43 #pragma pack(pop)
44 
45 #define ITT_GROUP_LIST(varname)                                                \
46   static __itt_group_list varname[] = {{__itt_group_all, "all"},               \
47                                        {__itt_group_control, "control"},       \
48                                        {__itt_group_thread, "thread"},         \
49                                        {__itt_group_mark, "mark"},             \
50                                        {__itt_group_sync, "sync"},             \
51                                        {__itt_group_fsync, "fsync"},           \
52                                        {__itt_group_jit, "jit"},               \
53                                        {__itt_group_model, "model"},           \
54                                        {__itt_group_counter, "counter"},       \
55                                        {__itt_group_frame, "frame"},           \
56                                        {__itt_group_stitch, "stitch"},         \
57                                        {__itt_group_heap, "heap"},             \
58                                        {__itt_group_structure, "structure"},   \
59                                        {__itt_group_suppress, "suppress"},     \
60                                        {__itt_group_arrays, "arrays"},         \
61                                        {__itt_group_module, "module"},         \
62                                        {__itt_group_none, NULL}}
63 
64 #endif /* _ITTNOTIFY_TYPES_H_ */
65