110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/** 210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @file op_mangle.h 310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * Mangling of sample file names 410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * 510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @remark Copyright 2002 OProfile authors 610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @remark Read the file COPYING 710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * 810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @author John Levon 910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @author Philippe Elie 1010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project */ 1110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 1210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#ifndef OP_MANGLE_H 1310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#define OP_MANGLE_H 1410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 1510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#include <sys/types.h> 1610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 1710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#ifdef __cplusplus 1810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectextern "C" { 1910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#endif 2010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 2110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectenum mangle_flags { 2210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project MANGLE_NONE = 0, 2310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project MANGLE_CPU = (1 << 0), 2410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project MANGLE_TGID = (1 << 1), 2510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project MANGLE_TID = (1 << 2), 2610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project MANGLE_KERNEL = (1 << 3), 2710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project MANGLE_CALLGRAPH = (1 << 4), 2810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project MANGLE_ANON = (1 << 5), 2910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project MANGLE_CG_ANON = (1 << 6), 3010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project}; 3110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 3210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/** 3310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * Temporary structure for passing parameters to 3410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * op_mangle_filename. 3510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project */ 3610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectstruct mangle_values { 3710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project int flags; 3810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 3910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project char const * image_name; 4010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project char const * anon_name; 4110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project char const * dep_name; 4210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project char const * cg_image_name; 4310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project char const * event_name; 4410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project int count; 4510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project unsigned int unit_mask; 4610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project pid_t tgid; 4710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project pid_t tid; 4810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project int cpu; 4910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project}; 5010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 5110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project/** 5210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * op_mangle_filename - mangle a sample filename 5310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * @param values parameters to use as mangling input 5410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * 5510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * See also PP:3 for the encoding scheme 5610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * 5710e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * Returns a char* pointer to the mangled string. Caller 5810e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project * is responsible for freeing this string. 5910e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project */ 6010e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Projectchar * op_mangle_filename(struct mangle_values const * values); 6110e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 6210e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#ifdef __cplusplus 6310e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project} 6410e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#endif 6510e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project 6610e23eebca4175a8dfe3a788b2bebacb1fcfce54The Android Open Source Project#endif /* OP_MANGLE_H */ 67