1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- /* SPDX-License-Identifier: GPL-2.0 */
- #include <linux/mutex.h>
- struct rv_interface {
- struct dentry *root_dir;
- struct dentry *monitors_dir;
- };
- #include "../trace.h"
- #include <linux/tracefs.h>
- #include <linux/rv.h>
- #define RV_MODE_WRITE TRACE_MODE_WRITE
- #define RV_MODE_READ TRACE_MODE_READ
- #define rv_create_dir tracefs_create_dir
- #define rv_create_file tracefs_create_file
- #define rv_remove tracefs_remove
- #define MAX_RV_MONITOR_NAME_SIZE 32
- #define MAX_RV_REACTOR_NAME_SIZE 32
- extern struct mutex rv_interface_lock;
- #ifdef CONFIG_RV_REACTORS
- struct rv_reactor_def {
- struct list_head list;
- struct rv_reactor *reactor;
- /* protected by the monitor interface lock */
- int counter;
- };
- #endif
- struct rv_monitor_def {
- struct list_head list;
- struct rv_monitor *monitor;
- struct dentry *root_d;
- #ifdef CONFIG_RV_REACTORS
- struct rv_reactor_def *rdef;
- bool reacting;
- #endif
- bool task_monitor;
- };
- struct dentry *get_monitors_root(void);
- int rv_disable_monitor(struct rv_monitor_def *mdef);
- int rv_enable_monitor(struct rv_monitor_def *mdef);
- #ifdef CONFIG_RV_REACTORS
- int reactor_populate_monitor(struct rv_monitor_def *mdef);
- void reactor_cleanup_monitor(struct rv_monitor_def *mdef);
- int init_rv_reactors(struct dentry *root_dir);
- #else
- static inline int reactor_populate_monitor(struct rv_monitor_def *mdef)
- {
- return 0;
- }
- static inline void reactor_cleanup_monitor(struct rv_monitor_def *mdef)
- {
- return;
- }
- static inline int init_rv_reactors(struct dentry *root_dir)
- {
- return 0;
- }
- #endif
|