![Arjan van de Ven](/assets/img/avatar_default.png)
Many struct file_operations in the kernel can be "const". Marking them const moves these to the .rodata section, which avoids false sharing with potential dirty data. In addition it'll catch accidental writes at compile time to these shared resources. Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
52 lines
1.1 KiB
C
52 lines
1.1 KiB
C
/**
|
|
* @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 */
|