1/*===-- ittnotify_types.h - JIT Profiling API internal types--------*- C -*-===*
2 *
3 * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 * See https://llvm.org/LICENSE.txt for license information.
5 * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 *
7 *===----------------------------------------------------------------------===*
8 *
9 * NOTE: This file comes in a style different from the rest of LLVM
10 * source base since  this is a piece of code shared from Intel(R)
11 * products.  Please do not reformat / re-style this code to make
12 * subsequent merges and contributions from the original source base eaiser.
13 *
14 *===----------------------------------------------------------------------===*/
15#ifndef _ITTNOTIFY_TYPES_H_
16#define _ITTNOTIFY_TYPES_H_
17
18typedef enum ___itt_group_id
19{
20    __itt_group_none      = 0,
21    __itt_group_legacy    = 1<<0,
22    __itt_group_control   = 1<<1,
23    __itt_group_thread    = 1<<2,
24    __itt_group_mark      = 1<<3,
25    __itt_group_sync      = 1<<4,
26    __itt_group_fsync     = 1<<5,
27    __itt_group_jit       = 1<<6,
28    __itt_group_model     = 1<<7,
29    __itt_group_splitter_min = 1<<7,
30    __itt_group_counter   = 1<<8,
31    __itt_group_frame     = 1<<9,
32    __itt_group_stitch    = 1<<10,
33    __itt_group_heap      = 1<<11,
34    __itt_group_splitter_max = 1<<12,
35    __itt_group_structure = 1<<12,
36    __itt_group_suppress = 1<<13,
37    __itt_group_all       = -1
38} __itt_group_id;
39
40#pragma pack(push, 8)
41
42typedef struct ___itt_group_list
43{
44    __itt_group_id id;
45    const char*    name;
46} __itt_group_list;
47
48#pragma pack(pop)
49
50#define ITT_GROUP_LIST(varname) \
51    static __itt_group_list varname[] = {       \
52        { __itt_group_all,       "all"       }, \
53        { __itt_group_control,   "control"   }, \
54        { __itt_group_thread,    "thread"    }, \
55        { __itt_group_mark,      "mark"      }, \
56        { __itt_group_sync,      "sync"      }, \
57        { __itt_group_fsync,     "fsync"     }, \
58        { __itt_group_jit,       "jit"       }, \
59        { __itt_group_model,     "model"     }, \
60        { __itt_group_counter,   "counter"   }, \
61        { __itt_group_frame,     "frame"     }, \
62        { __itt_group_stitch,    "stitch"    }, \
63        { __itt_group_heap,      "heap"      }, \
64        { __itt_group_structure, "structure" }, \
65        { __itt_group_suppress,  "suppress"  }, \
66        { __itt_group_none,      NULL        }  \
67    }
68
69#endif /* _ITTNOTIFY_TYPES_H_ */
70