1/** 2 * @file daemon/liblegacy/opd_kernel.h 3 * Dealing with the kernel and kernel module samples 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 OPD_KERNEL_H 13#define OPD_KERNEL_H 14 15#include "op_types.h" 16 17struct opd_proc; 18 19/** 20 * opd_init_kernel_image - initialise the kernel image 21 */ 22void opd_init_kernel_image(void); 23 24/** 25 * opd_parse_kernel_range - parse the kernel range values 26 */ 27void opd_parse_kernel_range(char const * arg); 28 29/** 30 * opd_clear_module_info - clear kernel module information 31 * 32 * Clear and free all kernel module information and reset 33 * values. 34 */ 35void opd_clear_module_info(void); 36 37/** 38 * opd_handle_kernel_sample - process a kernel sample 39 * @param eip EIP value of sample 40 * @param counter counter number 41 * 42 * Handle a sample in kernel address space or in a module. The sample is 43 * output to the relevant image file. 44 */ 45void opd_handle_kernel_sample(unsigned long eip, u32 counter); 46 47/** 48 * opd_eip_is_kernel - is the sample from kernel/module space 49 * @param eip EIP value 50 * 51 * Returns %1 if eip is in the address space starting at 52 * kernel_start, %0 otherwise. 53 */ 54int opd_eip_is_kernel(unsigned long eip); 55 56/** 57 * opd_add_kernel_map - add a module or kernel maps to a proc struct 58 * 59 * @param proc owning proc of the new mapping 60 * @param eip eip inside the new mapping 61 * 62 * We assume than eip >= kernel_start 63 * 64 */ 65void opd_add_kernel_map(struct opd_proc * proc, unsigned long eip); 66 67#endif /* OPD_KERNEL_H */ 68