blob: d32ef816337c21189cdcfc53f5d6ddc57e1b0ed1 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/**
2 * @file oprof.h
3 *
4 * @remark Copyright 2002 OProfile authors
5 * @remark Read the file COPYING
6 *
7 * @author John Levon <levon@movementarian.org>
8 */
9
10#ifndef OPROF_H
11#define OPROF_H
12
13int oprofile_setup(void);
Robert Richter6a180372008-10-16 15:01:40 +020014void oprofile_shutdown(void);
Linus Torvalds1da177e2005-04-16 15:20:36 -070015
16int oprofilefs_register(void);
17void oprofilefs_unregister(void);
18
19int oprofile_start(void);
20void oprofile_stop(void);
21
22struct oprofile_operations;
Robert Richter6a180372008-10-16 15:01:40 +020023
Robert Richterbd2172f2008-12-16 16:19:54 +010024extern unsigned long oprofile_buffer_size;
25extern unsigned long oprofile_cpu_buffer_size;
26extern unsigned long oprofile_buffer_watershed;
Robert Richterafe1b50f2009-07-15 15:19:29 +020027extern unsigned long oprofile_time_slice;
28
Linus Torvalds1da177e2005-04-16 15:20:36 -070029extern struct oprofile_operations oprofile_ops;
30extern unsigned long oprofile_started;
Robert Richterbd2172f2008-12-16 16:19:54 +010031extern unsigned long oprofile_backtrace_depth;
Robert Richter6a180372008-10-16 15:01:40 +020032
Linus Torvalds1da177e2005-04-16 15:20:36 -070033struct super_block;
34struct dentry;
35
Robert Richter25ad2912008-09-05 17:12:36 +020036void oprofile_create_files(struct super_block *sb, struct dentry *root);
Martin Schwidefskybc078e42010-03-02 16:01:10 +010037int oprofile_timer_init(struct oprofile_operations *ops);
Robert Richterdcfce4a2011-10-11 17:11:08 +020038#ifdef CONFIG_OPROFILE_NMI_TIMER
39int op_nmi_timer_init(struct oprofile_operations *ops);
40#else
41static inline int op_nmi_timer_init(struct oprofile_operations *ops)
42{
43 return -ENODEV;
44}
45#endif
46
Linus Torvalds1da177e2005-04-16 15:20:36 -070047
Robert Richter7df01d92010-10-04 21:09:36 +020048int oprofile_set_ulong(unsigned long *addr, unsigned long val);
Jason Yeh4d4036e2009-07-08 13:49:38 +020049int oprofile_set_timeout(unsigned long time);
Robert Richter6a180372008-10-16 15:01:40 +020050
Linus Torvalds1da177e2005-04-16 15:20:36 -070051#endif /* OPROF_H */