|  | /** | 
|  | * @file event_buffer.h | 
|  | * | 
|  | * @remark Copyright 2002 OProfile authors | 
|  | * @remark Read the file COPYING | 
|  | * | 
|  | * @author John Levon <levon@movementarian.org> | 
|  | */ | 
|  |  | 
|  | #ifndef EVENT_BUFFER_H | 
|  | #define EVENT_BUFFER_H | 
|  |  | 
|  | #include <linux/types.h> | 
|  | #include <asm/mutex.h> | 
|  |  | 
|  | int alloc_event_buffer(void); | 
|  |  | 
|  | void free_event_buffer(void); | 
|  |  | 
|  | /* wake up the process sleeping on the event file */ | 
|  | void wake_up_buffer_waiter(void); | 
|  |  | 
|  | /* Each escaped entry is prefixed by ESCAPE_CODE | 
|  | * then one of the following codes, then the | 
|  | * relevant data. | 
|  | */ | 
|  | #define ESCAPE_CODE			~0UL | 
|  | #define CTX_SWITCH_CODE 		1 | 
|  | #define CPU_SWITCH_CODE 		2 | 
|  | #define COOKIE_SWITCH_CODE 		3 | 
|  | #define KERNEL_ENTER_SWITCH_CODE	4 | 
|  | #define KERNEL_EXIT_SWITCH_CODE		5 | 
|  | #define MODULE_LOADED_CODE		6 | 
|  | #define CTX_TGID_CODE			7 | 
|  | #define TRACE_BEGIN_CODE		8 | 
|  | #define TRACE_END_CODE			9 | 
|  |  | 
|  | #define INVALID_COOKIE ~0UL | 
|  | #define NO_COOKIE 0UL | 
|  |  | 
|  | /* add data to the event buffer */ | 
|  | void add_event_entry(unsigned long data); | 
|  |  | 
|  | extern const struct file_operations event_buffer_fops; | 
|  |  | 
|  | /* mutex between sync_cpu_buffers() and the | 
|  | * file reading code. | 
|  | */ | 
|  | extern struct mutex buffer_mutex; | 
|  |  | 
|  | #endif /* EVENT_BUFFER_H */ |