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 18extern "C" { 19#endif 20 21enum 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 */ 36struct 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 */ 60char * op_mangle_filename(struct mangle_values const * values); 61 62#ifdef __cplusplus 63} 64#endif 65 66#endif /* OP_MANGLE_H */ 67