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 
26 enum 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 
36 enum LibExpand
37 {
38   LIBEX_SHOW    = 0,
39   LIBEX_HIDE    = 1,
40   LIBEX_API     = 2
41 };
42 
43 enum SrcVisible
44 {
45   SRC_NA        = 0,
46   SRC_CODE      = 1,
47   SRC_METRIC    = 2
48 };
49 
50 enum 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 
63 enum 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 
75 enum 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 
87 enum TLStack_align
88 {
89   TLSTACK_ALIGN_ROOT = 1,
90   TLSTACK_ALIGN_LEAF
91 };
92 
93 enum 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 
107 enum 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 
116 enum Presentation_align_type
117 {
118   TEXT_LEFT     = 1,
119   TEXT_CENTER   = 2,
120   TEXT_RIGHT    = 3
121 };
122 
123 enum Message_type
124 {
125   ERROR_MSG     = 1,
126   WARNING_MSG   = 2,
127   PSTAT_MSG     = 3,
128   PWARN_MSG     = 4
129 };
130 
131 enum Presentation_clock_unit
132 {
133   CUNIT_NULL    = -1,
134   CUNIT_BYTES   = -2,
135   CUNIT_TIME    = -3
136 };
137 
138 enum 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 
180 enum CmpMode
181 {
182   CMP_DISABLE   = 0,
183   CMP_ENABLE    = 1,
184   CMP_RATIO     = 2,
185   CMP_DELTA     = 4
186 };
187 
188 enum PrintMode
189 {
190   PM_TEXT = 0,
191   PM_HTML = 1,
192   PM_DELIM_SEP_LIST = 2
193 };
194 
195 #endif // _ENUMS_H
196