runtime/utrace_compatibility.h - systemtap
Data types defined
Functions defined
Macros defined
Source code
#ifndef _UTRACE_COMPATIBILITY_H_
#define _UTRACE_COMPATIBILITY_H_
#include <linux/utrace.h>
#ifndef UTRACE_API_VERSION
#define utrace_engine utrace_attached_engine
#endif
#ifndef UTRACE_ATTACH_ATOMIC
#define UTRACE_ATTACH_ATOMIC 0
#endif
#ifdef UTRACE_ACTION_RESUME
#define UTRACE_ORIG_VERSION
enum utrace_resume_action {
UTRACE_STOP = UTRACE_ACTION_QUIESCE,
UTRACE_INTERRUPT = UTRACE_ACTION_QUIESCE,
UTRACE_RESUME = UTRACE_ACTION_RESUME,
UTRACE_DETACH = UTRACE_ACTION_DETACH,
UTRACE_SINGLESTEP = UTRACE_ACTION_SINGLESTEP,
UTRACE_BLOCKSTEP = UTRACE_ACTION_BLOCKSTEP,
};
static inline struct utrace_engine *
utrace_attach_task(struct task_struct *target, int flags,
const struct utrace_engine_ops *ops, void *data)
{
return utrace_attach(target, flags, ops, data);
}
static inline int __must_check
utrace_control(struct task_struct *target,
struct utrace_engine *engine,
enum utrace_resume_action action)
{
switch (action) {
case UTRACE_DETACH:
return utrace_detach(target, engine);
case UTRACE_STOP:
return utrace_set_flags(target, engine,
(engine->flags | UTRACE_ACTION_QUIESCE));
case UTRACE_SINGLESTEP:
case UTRACE_BLOCKSTEP:
return utrace_set_flags(target, engine,
engine->flags | action);
default:
return -EINVAL;
}
}
static inline int __must_check
utrace_set_events(struct task_struct *target,
struct utrace_engine *engine,
unsigned long eventmask)
{
return utrace_set_flags(target, engine, eventmask);
}
static inline void
utrace_engine_put(struct utrace_engine *engine)
{
return;
}
static inline int __must_check
utrace_barrier(struct task_struct *target,
struct utrace_engine *engine)
{
return 0;
}
#else
#ifdef UTRACE_HIDE_EVENT
#define utrace_attach_task utrace_attach
static inline void
utrace_engine_put(struct utrace_engine *engine)
{
return;
}
static inline int __must_check
utrace_barrier(struct task_struct *target,
struct utrace_engine *engine)
{
return 0;
}
#endif #endif
#endif