^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /**
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) * @file oprof.h
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) * @remark Copyright 2002 OProfile authors
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) * @remark Read the file COPYING
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) * @author John Levon <levon@movementarian.org>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #ifndef OPROF_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #define OPROF_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) int oprofile_setup(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) void oprofile_shutdown(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) int oprofilefs_register(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) void oprofilefs_unregister(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) int oprofile_start(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) void oprofile_stop(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) struct oprofile_operations;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) extern unsigned long oprofile_buffer_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) extern unsigned long oprofile_cpu_buffer_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) extern unsigned long oprofile_buffer_watershed;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) extern unsigned long oprofile_time_slice;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) extern struct oprofile_operations oprofile_ops;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) extern unsigned long oprofile_started;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) extern unsigned long oprofile_backtrace_depth;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) struct dentry;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) void oprofile_create_files(struct dentry *root);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) int oprofile_timer_init(struct oprofile_operations *ops);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) #ifdef CONFIG_OPROFILE_NMI_TIMER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) int op_nmi_timer_init(struct oprofile_operations *ops);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) #else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) static inline int op_nmi_timer_init(struct oprofile_operations *ops)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) return -ENODEV;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) #endif
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) int oprofile_set_ulong(unsigned long *addr, unsigned long val);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) int oprofile_set_timeout(unsigned long time);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) #endif /* OPROF_H */