cregit-Linux how code gets into the kernel

Release 4.10 tools/perf/util/unwind.h

Directory: tools/perf/util
#ifndef __UNWIND_H

#define __UNWIND_H

#include <linux/types.h>
#include "event.h"
#include "symbol.h"
#include "thread.h"


struct unwind_entry {
	
struct map	*map;
	
struct symbol	*sym;
	
u64		ip;
};


typedef int (*unwind_entry_cb_t)(struct unwind_entry *entry, void *arg);


struct unwind_libunwind_ops {
	
int (*prepare_access)(struct thread *thread);
	
void (*flush_access)(struct thread *thread);
	
void (*finish_access)(struct thread *thread);
	
int (*get_entries)(unwind_entry_cb_t cb, void *arg,
			   struct thread *thread,
			   struct perf_sample *data, int max_stack);
};

#ifdef HAVE_DWARF_UNWIND_SUPPORT
int unwind__get_entries(unwind_entry_cb_t cb, void *arg,
			struct thread *thread,
			struct perf_sample *data, int max_stack);
/* libunwind specific */
#ifdef HAVE_LIBUNWIND_SUPPORT
#ifndef LIBUNWIND__ARCH_REG_ID

#define LIBUNWIND__ARCH_REG_ID(regnum) libunwind__arch_reg_id(regnum)
#endif

#ifndef LIBUNWIND__ARCH_REG_SP

#define LIBUNWIND__ARCH_REG_SP PERF_REG_SP
#endif

#ifndef LIBUNWIND__ARCH_REG_IP

#define LIBUNWIND__ARCH_REG_IP PERF_REG_IP
#endif

int LIBUNWIND__ARCH_REG_ID(int regnum);
int unwind__prepare_access(struct thread *thread, struct map *map,
			   bool *initialized);
void unwind__flush_access(struct thread *thread);
void unwind__finish_access(struct thread *thread);
#else

static inline int unwind__prepare_access(struct thread *thread __maybe_unused, struct map *map __maybe_unused, bool *initialized __maybe_unused) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
namhyung kimnamhyung kim1659.26%133.33%
he kuanghe kuang622.22%133.33%
jiri olsajiri olsa518.52%133.33%
Total27100.00%3100.00%


static inline void unwind__flush_access(struct thread *thread __maybe_unused) {}

Contributors

PersonTokensPropCommitsCommitProp
namhyung kimnamhyung kim12100.00%1100.00%
Total12100.00%1100.00%


static inline void unwind__finish_access(struct thread *thread __maybe_unused) {}

Contributors

PersonTokensPropCommitsCommitProp
namhyung kimnamhyung kim12100.00%1100.00%
Total12100.00%1100.00%

#endif #else
static inline int unwind__get_entries(unwind_entry_cb_t cb __maybe_unused, void *arg __maybe_unused, struct thread *thread __maybe_unused, struct perf_sample *data __maybe_unused, int max_stack __maybe_unused) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
jiri olsajiri olsa2777.14%133.33%
irina tirdeairina tirdea411.43%133.33%
arnaldo carvalho de meloarnaldo carvalho de melo411.43%133.33%
Total35100.00%3100.00%


static inline int unwind__prepare_access(struct thread *thread __maybe_unused, struct map *map __maybe_unused, bool *initialized __maybe_unused) { return 0; }

Contributors

PersonTokensPropCommitsCommitProp
namhyung kimnamhyung kim1659.26%133.33%
he kuanghe kuang622.22%133.33%
jiri olsajiri olsa518.52%133.33%
Total27100.00%3100.00%


static inline void unwind__flush_access(struct thread *thread __maybe_unused) {}

Contributors

PersonTokensPropCommitsCommitProp
namhyung kimnamhyung kim12100.00%1100.00%
Total12100.00%1100.00%


static inline void unwind__finish_access(struct thread *thread __maybe_unused) {}

Contributors

PersonTokensPropCommitsCommitProp
namhyung kimnamhyung kim12100.00%1100.00%
Total12100.00%1100.00%

#endif /* HAVE_DWARF_UNWIND_SUPPORT */ #endif /* __UNWIND_H */

Overall Contributors

PersonTokensPropCommitsCommitProp
jiri olsajiri olsa13235.29%323.08%
he kuanghe kuang11631.02%430.77%
namhyung kimnamhyung kim11430.48%323.08%
arnaldo carvalho de meloarnaldo carvalho de melo71.87%17.69%
irina tirdeairina tirdea41.07%17.69%
borislav petkovborislav petkov10.27%17.69%
Total374100.00%13100.00%
Directory: tools/perf/util
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.