| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 1 | /** | 
|  | 2 | * @file event_buffer.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 EVENT_BUFFER_H | 
|  | 11 | #define EVENT_BUFFER_H | 
|  | 12 |  | 
|  | 13 | #include <linux/types.h> | 
| Markus Armbruster | 59cc185 | 2006-06-25 05:47:33 -0700 | [diff] [blame] | 14 | #include <asm/mutex.h> | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 15 |  | 
|  | 16 | int alloc_event_buffer(void); | 
|  | 17 |  | 
|  | 18 | void free_event_buffer(void); | 
|  | 19 |  | 
|  | 20 | /* wake up the process sleeping on the event file */ | 
|  | 21 | void wake_up_buffer_waiter(void); | 
|  | 22 |  | 
|  | 23 | /* Each escaped entry is prefixed by ESCAPE_CODE | 
|  | 24 | * then one of the following codes, then the | 
|  | 25 | * relevant data. | 
|  | 26 | */ | 
|  | 27 | #define ESCAPE_CODE			~0UL | 
|  | 28 | #define CTX_SWITCH_CODE 		1 | 
|  | 29 | #define CPU_SWITCH_CODE 		2 | 
|  | 30 | #define COOKIE_SWITCH_CODE 		3 | 
|  | 31 | #define KERNEL_ENTER_SWITCH_CODE	4 | 
|  | 32 | #define KERNEL_EXIT_SWITCH_CODE		5 | 
|  | 33 | #define MODULE_LOADED_CODE		6 | 
|  | 34 | #define CTX_TGID_CODE			7 | 
|  | 35 | #define TRACE_BEGIN_CODE		8 | 
|  | 36 | #define TRACE_END_CODE			9 | 
|  | 37 |  | 
| John Levon | 0c0a400 | 2005-06-23 22:02:47 -0700 | [diff] [blame] | 38 | #define INVALID_COOKIE ~0UL | 
|  | 39 | #define NO_COOKIE 0UL | 
|  | 40 |  | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 41 | /* add data to the event buffer */ | 
|  | 42 | void add_event_entry(unsigned long data); | 
|  | 43 |  | 
| Arjan van de Ven | d54b1fd | 2007-02-12 00:55:34 -0800 | [diff] [blame] | 44 | extern const struct file_operations event_buffer_fops; | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 45 |  | 
|  | 46 | /* mutex between sync_cpu_buffers() and the | 
|  | 47 | * file reading code. | 
|  | 48 | */ | 
| Markus Armbruster | 59cc185 | 2006-06-25 05:47:33 -0700 | [diff] [blame] | 49 | extern struct mutex buffer_mutex; | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 50 |  | 
|  | 51 | #endif /* EVENT_BUFFER_H */ |