1/* Copyright (C) 2021 Free Software Foundation, Inc.
2   Contributed by Oracle.
3
4   This file is part of GNU Binutils.
5
6   This program is free software; you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 3, or (at your option)
9   any later version.
10
11   This program is distributed in the hope that it will be useful,
12   but WITHOUT ANY WARRANTY; without even the implied warranty of
13   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   GNU General Public License for more details.
15
16   You should have received a copy of the GNU General Public License
17   along with this program; if not, write to the Free Software
18   Foundation, 51 Franklin Street - Fifth Floor, Boston,
19   MA 02110-1301, USA.  */
20
21#ifndef _PERFAN_ENUMS_H
22#define _PERFAN_ENUMS_H
23
24#include "comp_com.h"
25
26enum Cmd_status
27{
28  CMD_OK = 0,
29  CMD_BAD,
30  CMD_AMBIGUOUS,
31  CMD_BAD_ARG,
32  CMD_OUTRANGE,
33  CMD_INVALID
34};
35
36enum LibExpand
37{
38  LIBEX_SHOW    = 0,
39  LIBEX_HIDE    = 1,
40  LIBEX_API     = 2
41};
42
43enum SrcVisible
44{
45  SRC_NA        = 0,
46  SRC_CODE      = 1,
47  SRC_METRIC    = 2
48};
49
50enum MetricType
51{ // sync enum changes with Settings.java
52  MET_NORMAL = 0,   // functions, lines, pcs; src & disasm (non-compare)
53  MET_CALL,         // callers-callees
54  MET_DATA,         // dataspace
55  MET_INDX,         // index objects
56  MET_CALL_AGR,     // call tree
57  MET_COMMON,       // Analyzer uses for DSP_DISASM, DSP_SOURCE, ...
58  MET_IO,           // IO activity
59  MET_SRCDIS,       // src & disasm (non comparison mode)
60  MET_HEAP          // Heap leaked list
61};
62
63enum ValueType
64{ // Bitmask     (!) sync enum changes with AnMetric.java
65  VAL_NA        = 0,  // nothing specified (use this enum instead of 0)
66  VAL_TIMEVAL   = 1,
67  VAL_VALUE     = 2,
68  VAL_PERCENT   = 4,
69  VAL_DELTA     = 8,
70  VAL_RATIO     = 16,
71  VAL_INTERNAL  = 32,
72  VAL_HIDE_ALL  = 64  // hide all, but allows settings to be remembered
73};
74
75enum CompCom
76{ // no value here can be the same as CCMV_
77  COMP_SRC = CCMV_BASIC + 1,
78  COMP_SRC_METRIC,
79  COMP_NOSRC,
80  COMP_HEX,
81  COMP_NOHEX,
82  COMP_THRESHOLD,
83  COMP_CMPLINE,
84  COMP_FUNCLINE
85};
86
87enum TLStack_align
88{
89  TLSTACK_ALIGN_ROOT = 1,
90  TLSTACK_ALIGN_LEAF
91};
92
93enum Reorder_status
94{
95  REORDER_SUCCESS,
96  REORDER_FAIL,
97  REORDER_ZERO,
98  REORDER_ONE_FUNC,
99  REORDER_FILE_OPEN,
100  REORDER_FILE_WRITE,
101  REORDER_COMP,
102  REORDER_NO_LOAD_OBJ,
103  REORDER_NO_OBJECT,
104  REORDER_INVALID
105};
106
107enum AnUtility_state
108{
109  EXP_SUCCESS     = 0,
110  EXP_FAILURE     = 1,
111  EXP_INCOMPLETE  = 2,
112  EXP_BROKEN      = 4,
113  EXP_OBSOLETE    = 8
114};
115
116enum Presentation_align_type
117{
118  TEXT_LEFT     = 1,
119  TEXT_CENTER   = 2,
120  TEXT_RIGHT    = 3
121};
122
123enum Message_type
124{
125  ERROR_MSG     = 1,
126  WARNING_MSG   = 2,
127  PSTAT_MSG     = 3,
128  PWARN_MSG     = 4
129};
130
131enum Presentation_clock_unit
132{
133  CUNIT_NULL    = -1,
134  CUNIT_BYTES   = -2,
135  CUNIT_TIME    = -3
136};
137
138enum FuncListDisp_type
139{
140  DSP_FUNCTION      = 1,
141  DSP_LINE          = 2,
142  DSP_PC            = 3,
143  DSP_SOURCE        = 4,
144  DSP_DISASM        = 5,
145  DSP_SELF          = 6, // not a tab; ID for Callers-Callees fragment data
146  DSP_CALLER        = 7,
147  DSP_CALLEE        = 8, // not a tab; ID for Callers-Callees callees data
148  DSP_CALLTREE      = 9,
149  DSP_TIMELINE      = 10,
150  DSP_STATIS        = 11,
151  DSP_EXP           = 12,
152  DSP_LEAKLIST      = 13,
153  DSP_MEMOBJ        = 14, // requires a specific subtype to define a tab
154  DSP_DATAOBJ       = 15,
155  DSP_DLAYOUT       = 16,
156  DSP_SRC_FILE      = 17, // not a tab; Details information (?)
157  DSP_IFREQ         = 18,
158  DSP_RACES         = 19,
159  DSP_INDXOBJ       = 20, // requires a specific subtype to define a tab
160  DSP_DUALSOURCE    = 21,
161  DSP_SOURCE_DISASM = 22,
162  DSP_DEADLOCKS     = 23,
163  DSP_MPI_TL        = 24,
164  DSP_MPI_CHART     = 25,
165  //DSP_TIMELINE_CLASSIC_TBR   = 26,
166  DSP_SOURCE_V2     = 27, // comparison
167  DSP_DISASM_V2     = 28, // comparison
168  //DSP_THREADS_TL    = 29;
169  //DSP_THREADS_CHART = 30;
170  DSP_IOACTIVITY    = 31,
171  DSP_OVERVIEW      = 32,
172  DSP_IOVFD         = 33,
173  DSP_IOCALLSTACK   = 34,
174  DSP_MINICALLER    = 37,
175  DSP_HEAPCALLSTACK = 39,
176  DSP_CALLFLAME     = 40,
177  DSP_SAMPLE        = 99
178};
179
180enum CmpMode
181{
182  CMP_DISABLE   = 0,
183  CMP_ENABLE    = 1,
184  CMP_RATIO     = 2,
185  CMP_DELTA     = 4
186};
187
188enum PrintMode
189{
190  PM_TEXT = 0,
191  PM_HTML = 1,
192  PM_DELIM_SEP_LIST = 2
193};
194
195#endif // _ENUMS_H
196