1*4882a593Smuzhiyun /** 2*4882a593Smuzhiyun * @file event_buffer.h 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * @remark Copyright 2002 OProfile authors 5*4882a593Smuzhiyun * @remark Read the file COPYING 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * @author John Levon <levon@movementarian.org> 8*4882a593Smuzhiyun */ 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun #ifndef EVENT_BUFFER_H 11*4882a593Smuzhiyun #define EVENT_BUFFER_H 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun #include <linux/types.h> 14*4882a593Smuzhiyun #include <linux/mutex.h> 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun int alloc_event_buffer(void); 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun void free_event_buffer(void); 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun /** 21*4882a593Smuzhiyun * Add data to the event buffer. 22*4882a593Smuzhiyun * The data passed is free-form, but typically consists of 23*4882a593Smuzhiyun * file offsets, dcookies, context information, and ESCAPE codes. 24*4882a593Smuzhiyun */ 25*4882a593Smuzhiyun void add_event_entry(unsigned long data); 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun /* wake up the process sleeping on the event file */ 28*4882a593Smuzhiyun void wake_up_buffer_waiter(void); 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun #define INVALID_COOKIE ~0UL 31*4882a593Smuzhiyun #define NO_COOKIE 0UL 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun extern const struct file_operations event_buffer_fops; 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun /* mutex between sync_cpu_buffers() and the 36*4882a593Smuzhiyun * file reading code. 37*4882a593Smuzhiyun */ 38*4882a593Smuzhiyun extern struct mutex buffer_mutex; 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun #endif /* EVENT_BUFFER_H */ 41