• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /**
2  * @file op_mangle.h
3  * Mangling of sample file names
4  *
5  * @remark Copyright 2002 OProfile authors
6  * @remark Read the file COPYING
7  *
8  * @author John Levon
9  * @author Philippe Elie
10  */
11 
12 #ifndef OP_MANGLE_H
13 #define OP_MANGLE_H
14 
15 #include <sys/types.h>
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 enum mangle_flags {
22 	MANGLE_NONE      = 0,
23 	MANGLE_CPU       = (1 << 0),
24 	MANGLE_TGID      = (1 << 1),
25 	MANGLE_TID       = (1 << 2),
26 	MANGLE_KERNEL    = (1 << 3),
27 	MANGLE_CALLGRAPH = (1 << 4),
28 	MANGLE_ANON      = (1 << 5),
29 	MANGLE_CG_ANON   = (1 << 6),
30 };
31 
32 /**
33  * Temporary structure for passing parameters to
34  * op_mangle_filename.
35  */
36 struct mangle_values {
37 	int flags;
38 
39 	char const * image_name;
40 	char const * anon_name;
41 	char const * dep_name;
42 	char const * cg_image_name;
43 	char const * event_name;
44 	int count;
45 	unsigned int unit_mask;
46 	pid_t tgid;
47 	pid_t tid;
48 	int cpu;
49 };
50 
51 /**
52  * op_mangle_filename - mangle a sample filename
53  * @param values  parameters to use as mangling input
54  *
55  * See also PP:3 for the encoding scheme
56  *
57  * Returns a char* pointer to the mangled string. Caller
58  * is responsible for freeing this string.
59  */
60 char * op_mangle_filename(struct mangle_values const * values);
61 
62 #ifdef __cplusplus
63 }
64 #endif
65 
66 #endif /* OP_MANGLE_H */
67