11da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds/**
21da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * @file oprof.h
31da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
41da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * @remark Copyright 2002 OProfile authors
51da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * @remark Read the file COPYING
61da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds *
71da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds * @author John Levon <levon@movementarian.org>
81da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds */
91da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
101da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#ifndef OPROF_H
111da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#define OPROF_H
121da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
131da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsint oprofile_setup(void);
146a18037d4165f691063b43816be3152e9006eb06Robert Richtervoid oprofile_shutdown(void);
151da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
161da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsint oprofilefs_register(void);
171da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid oprofilefs_unregister(void);
181da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
191da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsint oprofile_start(void);
201da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsvoid oprofile_stop(void);
211da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
221da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct oprofile_operations;
236a18037d4165f691063b43816be3152e9006eb06Robert Richter
24bd2172f58094b3f8afa017e68f3f0b57577824e1Robert Richterextern unsigned long oprofile_buffer_size;
25bd2172f58094b3f8afa017e68f3f0b57577824e1Robert Richterextern unsigned long oprofile_cpu_buffer_size;
26bd2172f58094b3f8afa017e68f3f0b57577824e1Robert Richterextern unsigned long oprofile_buffer_watershed;
27afe1b50fe6aa56093e9234bdc08779e9fe20b5bfRobert Richterextern unsigned long oprofile_time_slice;
28afe1b50fe6aa56093e9234bdc08779e9fe20b5bfRobert Richter
291da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern struct oprofile_operations oprofile_ops;
301da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsextern unsigned long oprofile_started;
31bd2172f58094b3f8afa017e68f3f0b57577824e1Robert Richterextern unsigned long oprofile_backtrace_depth;
326a18037d4165f691063b43816be3152e9006eb06Robert Richter
331da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct super_block;
341da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvaldsstruct dentry;
351da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
3625ad2913cae9c9e3ed28075caeb2eefccd636f4fRobert Richtervoid oprofile_create_files(struct super_block *sb, struct dentry *root);
37bc078e4eab65f11bbaeed380593ab8151b30d703Martin Schwidefskyint oprofile_timer_init(struct oprofile_operations *ops);
38dcfce4a095932e6e95d83ad982be3609947963bcRobert Richter#ifdef CONFIG_OPROFILE_NMI_TIMER
39dcfce4a095932e6e95d83ad982be3609947963bcRobert Richterint op_nmi_timer_init(struct oprofile_operations *ops);
40dcfce4a095932e6e95d83ad982be3609947963bcRobert Richter#else
41dcfce4a095932e6e95d83ad982be3609947963bcRobert Richterstatic inline int op_nmi_timer_init(struct oprofile_operations *ops)
42dcfce4a095932e6e95d83ad982be3609947963bcRobert Richter{
43dcfce4a095932e6e95d83ad982be3609947963bcRobert Richter	return -ENODEV;
44dcfce4a095932e6e95d83ad982be3609947963bcRobert Richter}
45dcfce4a095932e6e95d83ad982be3609947963bcRobert Richter#endif
46dcfce4a095932e6e95d83ad982be3609947963bcRobert Richter
471da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds
487df01d96b295e400167e78061b81d4c91630b12dRobert Richterint oprofile_set_ulong(unsigned long *addr, unsigned long val);
494d4036e0e7299c6cbb2d2421b4b30b7a409ce61aJason Yehint oprofile_set_timeout(unsigned long time);
506a18037d4165f691063b43816be3152e9006eb06Robert Richter
511da177e4c3f41524e886b7f1b8a0c1fc7321cacLinus Torvalds#endif /* OPROF_H */
52