18c2ecf20Sopenharmony_ci/** 28c2ecf20Sopenharmony_ci * @file event_buffer.h 38c2ecf20Sopenharmony_ci * 48c2ecf20Sopenharmony_ci * @remark Copyright 2002 OProfile authors 58c2ecf20Sopenharmony_ci * @remark Read the file COPYING 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci * @author John Levon <levon@movementarian.org> 88c2ecf20Sopenharmony_ci */ 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#ifndef EVENT_BUFFER_H 118c2ecf20Sopenharmony_ci#define EVENT_BUFFER_H 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci#include <linux/types.h> 148c2ecf20Sopenharmony_ci#include <linux/mutex.h> 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ciint alloc_event_buffer(void); 178c2ecf20Sopenharmony_ci 188c2ecf20Sopenharmony_civoid free_event_buffer(void); 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci/** 218c2ecf20Sopenharmony_ci * Add data to the event buffer. 228c2ecf20Sopenharmony_ci * The data passed is free-form, but typically consists of 238c2ecf20Sopenharmony_ci * file offsets, dcookies, context information, and ESCAPE codes. 248c2ecf20Sopenharmony_ci */ 258c2ecf20Sopenharmony_civoid add_event_entry(unsigned long data); 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci/* wake up the process sleeping on the event file */ 288c2ecf20Sopenharmony_civoid wake_up_buffer_waiter(void); 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci#define INVALID_COOKIE ~0UL 318c2ecf20Sopenharmony_ci#define NO_COOKIE 0UL 328c2ecf20Sopenharmony_ci 338c2ecf20Sopenharmony_ciextern const struct file_operations event_buffer_fops; 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ci/* mutex between sync_cpu_buffers() and the 368c2ecf20Sopenharmony_ci * file reading code. 378c2ecf20Sopenharmony_ci */ 388c2ecf20Sopenharmony_ciextern struct mutex buffer_mutex; 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci#endif /* EVENT_BUFFER_H */ 41