]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gprofng/src/Dbe.h
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / gprofng / src / Dbe.h
CommitLineData
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
27class MetricList;
28template <class ITEM> class Vector;
29typedef long long Obj;
30
31Vector<char*> *dbeGetInitMessages (void);
32Vector<char*> *dbeGetExpPreview (int dbevindex, char *exp_name);
33char *dbeGetExpParams (int dbevindex, char *exp_name);
34char *dbeCreateDirectories (const char *dirname);
35char *dbeDeleteFile (const char *pathname);
36Vector<char*> *dbeReadFile (const char *pathname);
37int dbeWriteFile (const char *pathname, const char *contents);
38char *dbeGetFileAttributes (const char *filename, const char *format);
39char *dbeGetFiles (const char *dirname, const char *format);
40char *dbeGetRunningProcesses (const char *format);
41char *dbeOpenExperimentList (int dbevindex, Vector<Vector<char*>*> *groups,
42 bool sessionRestart);
43char *dbeReadRCFile (int dbevindex, char* path);
44char *dbeSetExperimentsGroups (Vector<Vector<char*>*> *groups);
45Vector<Vector<char*>*> *dbeGetExperimensGroups ();
46char *dbeDropExperiment (int dbevindex, Vector<int> *drop_index);
47Vector<char*> *dbeGetExpsProperty (const char *prop_name);
48Vector<char*> *dbeGetExpName (int dbevindex);
49Vector<int> *dbeGetExpState (int dbevindex);
50Vector<bool> *dbeGetExpEnable (int dbevindex);
51bool dbeSetExpEnable (int dbevindex, Vector<bool> *enable);
52Vector<char*> *dbeGetExpInfo (int dbevindex);
53bool dbeGetViewModeEnable ();
54bool dbeGetJavaEnable ();
55int dbeUpdateNotes (int dbevindex, int exp_id, int type, char* text,
56 bool handle_file);
57Vector<void*> *dbeGetTabListInfo (int dbevindex);
58Vector<bool> *dbeGetTabSelectionState (int dbevindex);
59void dbeSetTabSelectionState (int dbevindex, Vector<bool> *selected);
60Vector<bool> *dbeGetMemTabSelectionState (int dbevindex);
61void dbeSetMemTabSelectionState (int dbevindex, Vector<bool> *selected);
62Vector<bool> *dbeGetIndxTabSelectionState (int dbevindex);
63void dbeSetIndxTabSelectionState (int dbevindex, Vector<bool> *selected);
64Vector<char*> *dbeGetLoadObjectName (int dbevindex);
65Vector<void *> *dbeGetLoadObjectList (int dbevindex);
66Vector<char*> *dbeGetSearchPath (int dbevindex);
67void dbeSetSearchPath (int dbevindex, Vector<char*> *path);
68Vector<void*> *dbeGetPathmaps (int dbevindex);
69char *dbeSetPathmaps (Vector<char*> *from, Vector<char*> *to);
70char *dbeAddPathmap (int dbevindex, char *from, char *to);
71char *dbeGetMsg (int dbevindex, int type);
72int dbeInitView (int index, int cloneindex);
73void dbeDeleteView (int dbevindex);
74
75// methods concerning metrics
76MetricList *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);
81Vector<void*> *dbeGetRefMetricsV2 ();
82Vector<void*> *dbeGetCurMetricsV2 (int dbevindex, MetricType mtype);
83void dbeSetSort (int dbevindex, int sort_index, MetricType mtype, bool reverse);
84
85// methods concerning metrics for Overview Tab
86Vector<void*> *dbeGetRefMetricTree (int dbevindex, bool include_unregistered);
87Vector<void*> *dbeGetRefMetricTreeValues (int dbevindex, Vector<char *> *met_cmds,
88 Vector<char *> *non_met_cmds);
89Vector<char*> *dbeGetOverviewText (int dbevindex);
90Vector<int> *dbeGetAnoValue (int dbevindex);
91void dbeSetAnoValue (int dbevindex, Vector<int> *set);
92int dbeGetNameFormat (int dbevindex);
93bool dbeGetSoName (int dbevindex);
94void dbeSetNameFormat (int dbevindex, int fnames, bool soname);
95int dbeGetViewMode (int dbevindex);
96void dbeSetViewMode (int dbevindex, int nmode);
97Vector<void*> *dbeGetTLValue (int dbevindex);
98void dbeSetTLValue (int dbevindex, const char *tldata_cmd,
99 int entitiy_prop_id, int stackalign, int stackdepth);
100Vector<void*> *dbeGetExpFounderDescendants ();
101Vector<void*> *dbeGetExpSelection (int dbevindex);
102Vector<void*> *dbeGetSampleStatus (int dbevindex, int nselected,
103 Vector<bool> *selected);
104Vector<unsigned> *dbeGetSampleSize (int dbevindex, Vector<bool> *selected);
105char *dbeCheckPattern (int dbevindex, Vector<bool> *selected, char *pattern,
106 int type);
107char *dbeSetFilterStr (int dbevindex, char *filter_str);
108char *dbeGetFilterStr (int dbevindex);
109int dbeValidateFilterExpression (char *str_expr);
110Vector<void*> *dbeGetFilterKeywords (int dbevindex);
111Vector<void*> *dbeGetFilters (int dbevindex, int nexp);
112bool dbeUpdateFilters (int dbevindex, Vector<bool> *selected,
113 Vector<char*> *pattern_str);
114char *dbeComposeFilterClause (int dbevindex, int type, int subtype,
115 Vector<int>*selections);
116Vector<int> *dbeGetLoadObjectState (int dbevindex);
117void dbeSetLoadObjectState (int dbevindex, Vector<int> *selected);
118void dbeSetLoadObjectDefaults (int dbevindex);
119Vector<void*> *dbeGetMemObjects (int dbevindex);
120char *dbeDefineMemObj (char *name, char *index_expr, char *_machmodel,
121 char *sdesc, char *ldesc);
122char *dbeDeleteMemObj (char *name);
123Vector<char*> *dbeGetCPUVerMachineModel (int dbevindex);
124char *dbeLoadMachineModel (char *name);
125char *dbeGetMachineModel ();
126Vector<char*> *dbeListMachineModels ();
127void dbeDetectLoadMachineModel (int dbevindex);
128Vector<void*> *dbeGetIndxObjDescriptions (int dbevindex);
129Vector<void*> *dbeGetCustomIndxObjects (int dbevindex);
130char *dbeDefineIndxObj (char *name, char *index_expr, char *sdesc, char *ldesc);
131void dbeSetSelObj (int dbevindex, Obj sel_obj, int type, int subtype);
132void dbeSetSelObjV2 (int dbevindex, uint64_t id);
133Obj dbeGetSelObj (int dbevindex, int type, int subtype);
134uint64_t dbeGetSelObjV2 (int dbevindex, char *typeStr);
135int dbeGetSelIndex (int dbevindex, Obj sel_obj, int type, int subtype);
136Vector<uint64_t> *dbeGetSelObjsIO (int dbevindex, Vector<uint64_t> *ids, int type);
137Vector<uint64_t> *dbeGetSelObjIO (int dbevindex, uint64_t id, int type);
138uint64_t dbeGetSelObjHeapTimestamp (int dbevindex, uint64_t id);
139int dbeGetSelObjHeapUserExpId (int dbevindex, uint64_t id);
140char *dbeSetPrintLimit (int dbevindex, int limit);
141int dbeGetPrintLimit (int dbevindex);
142char *dbeSetPrintMode (int dbevindex, char *printmode);
143int dbeGetPrintMode (int dbevindex);
144char *dbeGetPrintModeString (int dbevindex);
145char dbeGetPrintDelim (int dbevindex);
146Vector<void*> *dbeGetTotals (int dbevindex, int dsptype, int subtype);
147Vector<void*> *dbeGetHotMarks (int dbevindex, int type);
148Vector<void*> *dbeGetHotMarksInc (int dbevindex, int type);
149Vector<void*> *dbeGetSummaryHotMarks (int dbevindex, Vector<Obj> *sel_objs, int type);
150Vector<uint64_t> *dbeGetFuncId (int dbevindex, int type, int begin, int length);
151Vector<void*> *dbeGetFuncCalleeInfo (int dbevindex, int type, Vector<int>* idxs, int groupId);
152Vector<void*> *dbeGetFuncCallerInfo (int dbevindex, int type, Vector<int>* idxs, int groupId);
153Vector<void*> *dbeGetFuncCalleeInfoById (int dbevindex, int type, int idx);
154Vector<void*> *dbeGetFuncCallerInfoById (int dbevindex, int type, int idx);
155char *dbePrintData (int dbevindex, int type, int subtype, char *printer,
156 char *fname, FILE *outfile);
157int dbeSetFuncData (int dbevindex, Obj sel_obj, int type, int subtype);
158Vector<void*> *dbeGetFuncList (int dbevindex, int type, int subtype);
159Vector<void*> *dbeGetFuncListV2 (int dbevindex, int mtype, Obj sel_obj, int type, int subtype);
160Vector<void*> *dbeGetFuncListMini (int dbevindex, int type, int subtype);
161Vector<Obj> *dbeGetComparableObjsV2 (int dbevindex, Obj sel_obj, int type);
162Obj dbeConvertSelObj (Obj obj, int type);
163Vector<int> *dbeGetGroupIds (int dbevindex);
164Vector<void*> *dbeGetTableDataV2 (int dbevindex, char *mlistStr, char *modeStr,
165 char *typeStr, char *subtypeStr, Vector<uint64_t> *ids);
166
167int dbeGetCallTreeNumLevels (int dbevindex);
168Vector<void*> *dbeGetCallTreeLevel (int dbevindex, char *mcmd, int level);
169Vector<void*> *dbeGetCallTreeLevels (int dbevindex, char *mcmd);
170Vector<void*> *dbeGetCallTreeChildren (int dbevindex, char *mcmd, Vector<int /*NodeIdx*/>*nodes);
171Vector<void*> *dbeGetCallTreeLevelFuncs (int dbevindex, int level_start, int level_end);
172Vector<void*> *dbeGetCallTreeFuncs (int dbevindex);
173Vector<char*> *dbeGetNames (int dbevindex, int type, Obj sel_obj);
174Vector<void*> *dbeGetTotalMax (int dbevindex, int type, int subtype);
175Vector<void*> *dbeGetStatisOverviewList (int dbevindex);
176Vector<void*> *dbeGetStatisList (int dbevindex);
177Vector<void*> *dbeGetSummary (int dbevindex, Vector<Obj> *objs, int type, int subtype);
178Vector<void*> *dbeGetSummaryV2 (int dbevindex, Vector<Obj> *objs, int type, int subtype);
179Vector<int> *dbeGetFounderExpId (Vector<int> *expIds);
180Vector<int> *dbeGetUserExpId (Vector<int> *expIds); // filter "user visible" experiment id
181Vector<int> *dbeGetExpGroupId (Vector<int> *expIds);
182char *dbeGetExpName (int dbevindex, char *dir_name);
183Vector<char*> *dbeGetHwcHelp (int dbevindex, bool forKernel);
184Vector<Vector<char*>*> *dbeGetHwcSets (int dbevindex, bool forKernel);
185Vector<void*> *dbeGetHwcsAll (int dbevindex, bool forKernel);
186Vector<char*> *dbeGetHwcAttrList (int dbevindex, bool forKernel);
187int dbeGetHwcMaxConcurrent (int dbevindex, bool forKernel);
188int dbeGetHwcMaxReg (int dbevindex); // TBR?
189
190Vector<char*> *dbeGetIfreqData (int dbevindex);
191Vector<void*> *dbeGetLeakListInfo (int dbevindex, bool leakflag);
192Vector<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);
195Vector<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);
198Vector<long long> *dbeMpviewGetAxisRange (int dbevindex, int exp_id,
199 int chart_type, int axis_type);
200Vector<char*> *dbeMpviewGetAxisDiscreteLabels (int dbevindex, int exp_id,
201 int chart_type, int axis_type);
202Vector<void*> *dbeMpviewGetFuncDetails (int dbevindex, int exp_id, Obj funcId);
203Vector<void*> *dbeMpviewGetMesgDetails (int dbevindex, int exp_id, Obj mesgId);
204Vector<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);
210void dbeMpviewFilterSet (int dbevindex, int exp_id, Vector<int> *ctid,
211 Vector<int > *axid, Vector<long long> *startVal,
212 Vector<long long> *endVal);
213void dbeMpviewLoadStacks (int dbevindex, int exp_id);
214
215
216Obj dbeGetObject (int dbevindex, Obj sel_func, Obj sel_pc);
217char *dbeGetName (int dbevindex, int exp_id);
218Vector<char*> *dbeGetExpVerboseName (Vector<int> *exp_ids);
219long long dbeGetStartTime (int dbevindex, int exp_id);
220long long dbeGetRelativeStartTime (int dbevindex, int exp_id);
221long long dbeGetEndTime (int dbevindex, int exp_id);
222int dbeGetClock (int dbevindex, int exp_id);
223long long dbeGetWallStartSec (int dbevindex, int exp_id);
224char *dbeGetHostname (int dbevindex, int exp_id);
225Vector<void*> *dbeGetEntityProps (int dbevindex);
226Vector<void*> *dbeGetEntities (int dbevindex, int exp_id, int ekind);
227Vector<void*> *dbeGetEntitiesV2 (int dbevindex, Vector<int> *exp_ids, int ekind);
228Vector<void*> *dbeGetTLDetails (int dbevindex, int exp_id, int data_id,
229 int entity_prop_id, Obj event_id);
230Vector<Obj> *dbeGetStackFunctions (int dbevindex, Obj stack);
231Vector<void*> *dbeGetStacksFunctions (int dbevindex, Vector<Obj> *stacks);
232Vector<Obj> *dbeGetStackPCs (int dbevindex, Obj stack);
233Vector<char*> *dbeGetStackNames (int dbevindex, Obj stack);
234Vector<void*> *dbeGetSamples (int dbevindex, int exp_id, int64_t lo, int64_t hi);
235Vector<void*> *dbeGetGCEvents (int dbevindex, int exp_id, int64_t lo, int64_t hi);
236Vector<Vector<char*>*>* dbeGetIOStatistics (int dbevindex);
237Vector<Vector<char*>*>* dbeGetHeapStatistics (int dbevindex);
238Vector<char*> *dbeGetFuncNames (int dbevindex, Vector<Obj> *funcs);
239Vector<char*> *dbeGetObjNamesV2 (int dbevindex, Vector<uint64_t> *ids);
240char *dbeGetFuncName (int dbevindex, Obj func);
241char *dbeGetObjNameV2 (int dbevindex, uint64_t id);
242Vector<uint64_t> *dbeGetFuncIds (int dbevindex, Vector<Obj> *funcs);
243uint64_t dbeGetFuncId (int dbevindex, Obj func);
244char *dbeGetDataspaceTypeDesc (int dbevindex, Obj stack);
245Vector<void*> *dbeGetDataDescriptorsV2 (int exp_id);
246Vector<void*> *dbeGetDataPropertiesV2 (int exp_id, int data_id);
247Vector<void*> *dbeGetExperimentTimeInfo (Vector<int> *exp_ids);
248Vector<void*> *dbeGetExperimentDataDescriptors (Vector<int> *exp_ids);
249
250/* New Timeline Interface */
251Vector<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);
255Vector<char*> *dbeGetLineInfo (Obj pc);
256int dbeSetAlias (char *name, char *uname, char *expr);
257Vector<char*> *dbeGetAlias (char *name);
258Vector<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);
262Vector<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);
267Vector<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);
271Vector<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);
275long 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 */
282int dbeGetSignalValue (char *);
283char *dbeSendSignal (pid_t, int);
284char *dbeGetCollectorControlValue (char *);
285char *dbeSetCollectorControlValue (char *, char *);
286char *dbeUnsetCollectorControlValue (char *);
287char *dbeCheckConnection (char *);
288void dbe_archive (Vector<long long> *ids, Vector<const char *> *locations);
289void dbeSetLocation (const char *fname, const char *location);
290void dbeSetLocations (Vector<const char *> *fnames, Vector<const char *> *locations);
291Vector<void*> *dbeResolvedWith_setpath (const char *path);
292Vector<void*> *dbeResolvedWith_pathmap (const char *old_prefix, const char *new_prefix);
293
294#endif /* _DBE_H_ */