]>
Commit | Line | Data |
---|---|---|
fd67aa11 | 1 | /* Copyright (C) 2021-2024 Free Software Foundation, Inc. |
bb368aad VM |
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 _DBE_H_ | |
22 | #define _DBE_H_ | |
23 | ||
24 | #include <stdio.h> | |
25 | #include "enums.h" | |
26 | ||
27 | class MetricList; | |
28 | template <class ITEM> class Vector; | |
29 | typedef long long Obj; | |
30 | ||
31 | Vector<char*> *dbeGetInitMessages (void); | |
32 | Vector<char*> *dbeGetExpPreview (int dbevindex, char *exp_name); | |
33 | char *dbeGetExpParams (int dbevindex, char *exp_name); | |
34 | char *dbeCreateDirectories (const char *dirname); | |
35 | char *dbeDeleteFile (const char *pathname); | |
36 | Vector<char*> *dbeReadFile (const char *pathname); | |
37 | int dbeWriteFile (const char *pathname, const char *contents); | |
38 | char *dbeGetFileAttributes (const char *filename, const char *format); | |
39 | char *dbeGetFiles (const char *dirname, const char *format); | |
40 | char *dbeGetRunningProcesses (const char *format); | |
41 | char *dbeOpenExperimentList (int dbevindex, Vector<Vector<char*>*> *groups, | |
42 | bool sessionRestart); | |
43 | char *dbeReadRCFile (int dbevindex, char* path); | |
44 | char *dbeSetExperimentsGroups (Vector<Vector<char*>*> *groups); | |
45 | Vector<Vector<char*>*> *dbeGetExperimensGroups (); | |
46 | char *dbeDropExperiment (int dbevindex, Vector<int> *drop_index); | |
47 | Vector<char*> *dbeGetExpsProperty (const char *prop_name); | |
48 | Vector<char*> *dbeGetExpName (int dbevindex); | |
49 | Vector<int> *dbeGetExpState (int dbevindex); | |
50 | Vector<bool> *dbeGetExpEnable (int dbevindex); | |
51 | bool dbeSetExpEnable (int dbevindex, Vector<bool> *enable); | |
52 | Vector<char*> *dbeGetExpInfo (int dbevindex); | |
53 | bool dbeGetViewModeEnable (); | |
54 | bool dbeGetJavaEnable (); | |
55 | int dbeUpdateNotes (int dbevindex, int exp_id, int type, char* text, | |
56 | bool handle_file); | |
57 | Vector<void*> *dbeGetTabListInfo (int dbevindex); | |
58 | Vector<bool> *dbeGetTabSelectionState (int dbevindex); | |
59 | void dbeSetTabSelectionState (int dbevindex, Vector<bool> *selected); | |
60 | Vector<bool> *dbeGetMemTabSelectionState (int dbevindex); | |
61 | void dbeSetMemTabSelectionState (int dbevindex, Vector<bool> *selected); | |
62 | Vector<bool> *dbeGetIndxTabSelectionState (int dbevindex); | |
63 | void dbeSetIndxTabSelectionState (int dbevindex, Vector<bool> *selected); | |
64 | Vector<char*> *dbeGetLoadObjectName (int dbevindex); | |
65 | Vector<void *> *dbeGetLoadObjectList (int dbevindex); | |
66 | Vector<char*> *dbeGetSearchPath (int dbevindex); | |
67 | void dbeSetSearchPath (int dbevindex, Vector<char*> *path); | |
68 | Vector<void*> *dbeGetPathmaps (int dbevindex); | |
69 | char *dbeSetPathmaps (Vector<char*> *from, Vector<char*> *to); | |
70 | char *dbeAddPathmap (int dbevindex, char *from, char *to); | |
71 | char *dbeGetMsg (int dbevindex, int type); | |
72 | int dbeInitView (int index, int cloneindex); | |
73 | void dbeDeleteView (int dbevindex); | |
74 | ||
75 | // methods concerning metrics | |
76 | MetricList *dbeGetMetricListV2 (int dbevindex, MetricType mtype, | |
77 | Vector<int> *type, Vector<int> *subtype, | |
78 | Vector<bool> *sort, Vector<int> *vis, | |
79 | Vector<char*> *aux, Vector<char*> *expr_spec, | |
80 | Vector<char*> *legends); | |
81 | Vector<void*> *dbeGetRefMetricsV2 (); | |
82 | Vector<void*> *dbeGetCurMetricsV2 (int dbevindex, MetricType mtype); | |
83 | void dbeSetSort (int dbevindex, int sort_index, MetricType mtype, bool reverse); | |
84 | ||
85 | // methods concerning metrics for Overview Tab | |
86 | Vector<void*> *dbeGetRefMetricTree (int dbevindex, bool include_unregistered); | |
87 | Vector<void*> *dbeGetRefMetricTreeValues (int dbevindex, Vector<char *> *met_cmds, | |
88 | Vector<char *> *non_met_cmds); | |
89 | Vector<char*> *dbeGetOverviewText (int dbevindex); | |
90 | Vector<int> *dbeGetAnoValue (int dbevindex); | |
91 | void dbeSetAnoValue (int dbevindex, Vector<int> *set); | |
92 | int dbeGetNameFormat (int dbevindex); | |
93 | bool dbeGetSoName (int dbevindex); | |
94 | void dbeSetNameFormat (int dbevindex, int fnames, bool soname); | |
95 | int dbeGetViewMode (int dbevindex); | |
96 | void dbeSetViewMode (int dbevindex, int nmode); | |
97 | Vector<void*> *dbeGetTLValue (int dbevindex); | |
98 | void dbeSetTLValue (int dbevindex, const char *tldata_cmd, | |
99 | int entitiy_prop_id, int stackalign, int stackdepth); | |
100 | Vector<void*> *dbeGetExpFounderDescendants (); | |
101 | Vector<void*> *dbeGetExpSelection (int dbevindex); | |
102 | Vector<void*> *dbeGetSampleStatus (int dbevindex, int nselected, | |
103 | Vector<bool> *selected); | |
104 | Vector<unsigned> *dbeGetSampleSize (int dbevindex, Vector<bool> *selected); | |
105 | char *dbeCheckPattern (int dbevindex, Vector<bool> *selected, char *pattern, | |
106 | int type); | |
107 | char *dbeSetFilterStr (int dbevindex, char *filter_str); | |
108 | char *dbeGetFilterStr (int dbevindex); | |
109 | int dbeValidateFilterExpression (char *str_expr); | |
110 | Vector<void*> *dbeGetFilterKeywords (int dbevindex); | |
111 | Vector<void*> *dbeGetFilters (int dbevindex, int nexp); | |
112 | bool dbeUpdateFilters (int dbevindex, Vector<bool> *selected, | |
113 | Vector<char*> *pattern_str); | |
114 | char *dbeComposeFilterClause (int dbevindex, int type, int subtype, | |
115 | Vector<int>*selections); | |
116 | Vector<int> *dbeGetLoadObjectState (int dbevindex); | |
117 | void dbeSetLoadObjectState (int dbevindex, Vector<int> *selected); | |
118 | void dbeSetLoadObjectDefaults (int dbevindex); | |
119 | Vector<void*> *dbeGetMemObjects (int dbevindex); | |
120 | char *dbeDefineMemObj (char *name, char *index_expr, char *_machmodel, | |
121 | char *sdesc, char *ldesc); | |
122 | char *dbeDeleteMemObj (char *name); | |
123 | Vector<char*> *dbeGetCPUVerMachineModel (int dbevindex); | |
124 | char *dbeLoadMachineModel (char *name); | |
125 | char *dbeGetMachineModel (); | |
126 | Vector<char*> *dbeListMachineModels (); | |
127 | void dbeDetectLoadMachineModel (int dbevindex); | |
128 | Vector<void*> *dbeGetIndxObjDescriptions (int dbevindex); | |
129 | Vector<void*> *dbeGetCustomIndxObjects (int dbevindex); | |
130 | char *dbeDefineIndxObj (char *name, char *index_expr, char *sdesc, char *ldesc); | |
131 | void dbeSetSelObj (int dbevindex, Obj sel_obj, int type, int subtype); | |
132 | void dbeSetSelObjV2 (int dbevindex, uint64_t id); | |
133 | Obj dbeGetSelObj (int dbevindex, int type, int subtype); | |
134 | uint64_t dbeGetSelObjV2 (int dbevindex, char *typeStr); | |
135 | int dbeGetSelIndex (int dbevindex, Obj sel_obj, int type, int subtype); | |
136 | Vector<uint64_t> *dbeGetSelObjsIO (int dbevindex, Vector<uint64_t> *ids, int type); | |
137 | Vector<uint64_t> *dbeGetSelObjIO (int dbevindex, uint64_t id, int type); | |
138 | uint64_t dbeGetSelObjHeapTimestamp (int dbevindex, uint64_t id); | |
139 | int dbeGetSelObjHeapUserExpId (int dbevindex, uint64_t id); | |
140 | char *dbeSetPrintLimit (int dbevindex, int limit); | |
141 | int dbeGetPrintLimit (int dbevindex); | |
142 | char *dbeSetPrintMode (int dbevindex, char *printmode); | |
143 | int dbeGetPrintMode (int dbevindex); | |
144 | char *dbeGetPrintModeString (int dbevindex); | |
145 | char dbeGetPrintDelim (int dbevindex); | |
146 | Vector<void*> *dbeGetTotals (int dbevindex, int dsptype, int subtype); | |
147 | Vector<void*> *dbeGetHotMarks (int dbevindex, int type); | |
148 | Vector<void*> *dbeGetHotMarksInc (int dbevindex, int type); | |
149 | Vector<void*> *dbeGetSummaryHotMarks (int dbevindex, Vector<Obj> *sel_objs, int type); | |
150 | Vector<uint64_t> *dbeGetFuncId (int dbevindex, int type, int begin, int length); | |
151 | Vector<void*> *dbeGetFuncCalleeInfo (int dbevindex, int type, Vector<int>* idxs, int groupId); | |
152 | Vector<void*> *dbeGetFuncCallerInfo (int dbevindex, int type, Vector<int>* idxs, int groupId); | |
153 | Vector<void*> *dbeGetFuncCalleeInfoById (int dbevindex, int type, int idx); | |
154 | Vector<void*> *dbeGetFuncCallerInfoById (int dbevindex, int type, int idx); | |
155 | char *dbePrintData (int dbevindex, int type, int subtype, char *printer, | |
156 | char *fname, FILE *outfile); | |
157 | int dbeSetFuncData (int dbevindex, Obj sel_obj, int type, int subtype); | |
158 | Vector<void*> *dbeGetFuncList (int dbevindex, int type, int subtype); | |
159 | Vector<void*> *dbeGetFuncListV2 (int dbevindex, int mtype, Obj sel_obj, int type, int subtype); | |
160 | Vector<void*> *dbeGetFuncListMini (int dbevindex, int type, int subtype); | |
161 | Vector<Obj> *dbeGetComparableObjsV2 (int dbevindex, Obj sel_obj, int type); | |
162 | Obj dbeConvertSelObj (Obj obj, int type); | |
163 | Vector<int> *dbeGetGroupIds (int dbevindex); | |
164 | Vector<void*> *dbeGetTableDataV2 (int dbevindex, char *mlistStr, char *modeStr, | |
165 | char *typeStr, char *subtypeStr, Vector<uint64_t> *ids); | |
166 | ||
167 | int dbeGetCallTreeNumLevels (int dbevindex); | |
168 | Vector<void*> *dbeGetCallTreeLevel (int dbevindex, char *mcmd, int level); | |
169 | Vector<void*> *dbeGetCallTreeLevels (int dbevindex, char *mcmd); | |
170 | Vector<void*> *dbeGetCallTreeChildren (int dbevindex, char *mcmd, Vector<int /*NodeIdx*/>*nodes); | |
171 | Vector<void*> *dbeGetCallTreeLevelFuncs (int dbevindex, int level_start, int level_end); | |
172 | Vector<void*> *dbeGetCallTreeFuncs (int dbevindex); | |
173 | Vector<char*> *dbeGetNames (int dbevindex, int type, Obj sel_obj); | |
174 | Vector<void*> *dbeGetTotalMax (int dbevindex, int type, int subtype); | |
175 | Vector<void*> *dbeGetStatisOverviewList (int dbevindex); | |
176 | Vector<void*> *dbeGetStatisList (int dbevindex); | |
177 | Vector<void*> *dbeGetSummary (int dbevindex, Vector<Obj> *objs, int type, int subtype); | |
178 | Vector<void*> *dbeGetSummaryV2 (int dbevindex, Vector<Obj> *objs, int type, int subtype); | |
179 | Vector<int> *dbeGetFounderExpId (Vector<int> *expIds); | |
180 | Vector<int> *dbeGetUserExpId (Vector<int> *expIds); // filter "user visible" experiment id | |
181 | Vector<int> *dbeGetExpGroupId (Vector<int> *expIds); | |
182 | char *dbeGetExpName (int dbevindex, char *dir_name); | |
183 | Vector<char*> *dbeGetHwcHelp (int dbevindex, bool forKernel); | |
184 | Vector<Vector<char*>*> *dbeGetHwcSets (int dbevindex, bool forKernel); | |
185 | Vector<void*> *dbeGetHwcsAll (int dbevindex, bool forKernel); | |
186 | Vector<char*> *dbeGetHwcAttrList (int dbevindex, bool forKernel); | |
187 | int dbeGetHwcMaxConcurrent (int dbevindex, bool forKernel); | |
188 | int dbeGetHwcMaxReg (int dbevindex); // TBR? | |
189 | ||
190 | Vector<char*> *dbeGetIfreqData (int dbevindex); | |
191 | Vector<void*> *dbeGetLeakListInfo (int dbevindex, bool leakflag); | |
192 | Vector<void*> *dbeMpviewGetTlFuncReps (int dbevindex, int exp_id, | |
193 | long long binSizeTime, long long startTime, long long endTime, | |
194 | long long binSizeRank, long long startRank, long long endRank); | |
195 | Vector<void*> *dbeMpviewGetTlMsgReps (int dbevindex, int exp_id, int throttle, | |
196 | long long binSizeTime, long long startTime, long long endTime, | |
197 | long long binSizeRank, long long startRank, long long endRank); | |
198 | Vector<long long> *dbeMpviewGetAxisRange (int dbevindex, int exp_id, | |
199 | int chart_type, int axis_type); | |
200 | Vector<char*> *dbeMpviewGetAxisDiscreteLabels (int dbevindex, int exp_id, | |
201 | int chart_type, int axis_type); | |
202 | Vector<void*> *dbeMpviewGetFuncDetails (int dbevindex, int exp_id, Obj funcId); | |
203 | Vector<void*> *dbeMpviewGetMesgDetails (int dbevindex, int exp_id, Obj mesgId); | |
204 | Vector<long long> *dbeMpviewGetChartData (int dbevindex, int exp_id, int ctype, | |
205 | int attr1, long long start1, | |
206 | long long end1, int nbins1, | |
207 | int attr2, long long start2, | |
208 | long long end2, int nbins2, | |
209 | int metric, int reduction); | |
210 | void dbeMpviewFilterSet (int dbevindex, int exp_id, Vector<int> *ctid, | |
211 | Vector<int > *axid, Vector<long long> *startVal, | |
212 | Vector<long long> *endVal); | |
213 | void dbeMpviewLoadStacks (int dbevindex, int exp_id); | |
214 | ||
215 | ||
216 | Obj dbeGetObject (int dbevindex, Obj sel_func, Obj sel_pc); | |
217 | char *dbeGetName (int dbevindex, int exp_id); | |
218 | Vector<char*> *dbeGetExpVerboseName (Vector<int> *exp_ids); | |
219 | long long dbeGetStartTime (int dbevindex, int exp_id); | |
220 | long long dbeGetRelativeStartTime (int dbevindex, int exp_id); | |
221 | long long dbeGetEndTime (int dbevindex, int exp_id); | |
222 | int dbeGetClock (int dbevindex, int exp_id); | |
223 | long long dbeGetWallStartSec (int dbevindex, int exp_id); | |
224 | char *dbeGetHostname (int dbevindex, int exp_id); | |
225 | Vector<void*> *dbeGetEntityProps (int dbevindex); | |
226 | Vector<void*> *dbeGetEntities (int dbevindex, int exp_id, int ekind); | |
227 | Vector<void*> *dbeGetEntitiesV2 (int dbevindex, Vector<int> *exp_ids, int ekind); | |
228 | Vector<void*> *dbeGetTLDetails (int dbevindex, int exp_id, int data_id, | |
229 | int entity_prop_id, Obj event_id); | |
230 | Vector<Obj> *dbeGetStackFunctions (int dbevindex, Obj stack); | |
231 | Vector<void*> *dbeGetStacksFunctions (int dbevindex, Vector<Obj> *stacks); | |
232 | Vector<Obj> *dbeGetStackPCs (int dbevindex, Obj stack); | |
233 | Vector<char*> *dbeGetStackNames (int dbevindex, Obj stack); | |
234 | Vector<void*> *dbeGetSamples (int dbevindex, int exp_id, int64_t lo, int64_t hi); | |
235 | Vector<void*> *dbeGetGCEvents (int dbevindex, int exp_id, int64_t lo, int64_t hi); | |
236 | Vector<Vector<char*>*>* dbeGetIOStatistics (int dbevindex); | |
237 | Vector<Vector<char*>*>* dbeGetHeapStatistics (int dbevindex); | |
238 | Vector<char*> *dbeGetFuncNames (int dbevindex, Vector<Obj> *funcs); | |
239 | Vector<char*> *dbeGetObjNamesV2 (int dbevindex, Vector<uint64_t> *ids); | |
240 | char *dbeGetFuncName (int dbevindex, Obj func); | |
241 | char *dbeGetObjNameV2 (int dbevindex, uint64_t id); | |
242 | Vector<uint64_t> *dbeGetFuncIds (int dbevindex, Vector<Obj> *funcs); | |
243 | uint64_t dbeGetFuncId (int dbevindex, Obj func); | |
244 | char *dbeGetDataspaceTypeDesc (int dbevindex, Obj stack); | |
245 | Vector<void*> *dbeGetDataDescriptorsV2 (int exp_id); | |
246 | Vector<void*> *dbeGetDataPropertiesV2 (int exp_id, int data_id); | |
247 | Vector<void*> *dbeGetExperimentTimeInfo (Vector<int> *exp_ids); | |
248 | Vector<void*> *dbeGetExperimentDataDescriptors (Vector<int> *exp_ids); | |
249 | ||
250 | /* New Timeline Interface */ | |
251 | Vector<long long> *dbeGetAggregatedValue (int data_id, char *lfilter, char *fexpr, | |
252 | char *pname_ts, hrtime_t start_ts, | |
253 | hrtime_t delta, int num, | |
254 | char *pname_key, char *aggr_func); | |
255 | Vector<char*> *dbeGetLineInfo (Obj pc); | |
256 | int dbeSetAlias (char *name, char *uname, char *expr); | |
257 | Vector<char*> *dbeGetAlias (char *name); | |
258 | Vector<Vector<long long>*> *dbeGetXYPlotData (int data_id, char *lfilter, | |
259 | char *arg, char *func1, char *aggr1, | |
260 | char *func2, char *aggr2, | |
261 | char *func3, char *aggr3); | |
262 | Vector<bool> *dbeHasTLData (int dbev_index, Vector<int> *exp_ids, | |
263 | Vector<int> *data_ids, // DATA_* | |
264 | Vector<int> *entity_prop_ids, // LWP,CPU,THR, etc | |
265 | Vector<int> *entity_prop_values, | |
266 | Vector<int> *auxs); | |
267 | Vector<void*> *dbeGetTLData (int dbevindex, int exp_id, int data_id, | |
268 | int entity_prop_id, int entity_prop_val, int aux, | |
269 | hrtime_t start_ts, hrtime_t delta, int num, | |
270 | bool getRepresentatives, Vector<char*> *chartProperties); | |
271 | Vector<long long> *dbeGetTLEventCenterTime (int dbevindex, int exp_id, | |
272 | int data_id, int entity_prop_id, | |
273 | int entity_prop_val, int aux, | |
274 | long long event_idx, long long move_count); | |
275 | long long dbeGetTLEventIdxNearTime (int dbevindex, int exp_id, | |
276 | int data_id, | |
277 | int entity_prop_id, int entity_prop_val, int aux, | |
278 | int searchDirection, | |
279 | long long timestamp); | |
280 | ||
281 | /* Interface for use by Collector GUI */ | |
282 | int dbeGetSignalValue (char *); | |
283 | char *dbeSendSignal (pid_t, int); | |
284 | char *dbeGetCollectorControlValue (char *); | |
285 | char *dbeSetCollectorControlValue (char *, char *); | |
286 | char *dbeUnsetCollectorControlValue (char *); | |
287 | char *dbeCheckConnection (char *); | |
288 | void dbe_archive (Vector<long long> *ids, Vector<const char *> *locations); | |
289 | void dbeSetLocation (const char *fname, const char *location); | |
290 | void dbeSetLocations (Vector<const char *> *fnames, Vector<const char *> *locations); | |
291 | Vector<void*> *dbeResolvedWith_setpath (const char *path); | |
292 | Vector<void*> *dbeResolvedWith_pathmap (const char *old_prefix, const char *new_prefix); | |
293 | ||
294 | #endif /* _DBE_H_ */ |