Name

struct utrace_engine — per-engine structure

Synopsis

struct utrace_engine {
  const struct utrace_engine_ops * ops;
  void * data;
  unsigned long flags;
};  

Members

ops

struct utrace_engine_ops pointer passed to utrace_attach_task

data

engine-private void * passed to utrace_attach_task

flags

event mask set by utrace_set_events plus internal flag bits

Description

The task itself never has to worry about engines detaching while it's doing event callbacks. These structures are removed from the task's active list only when it's stopped, or by the task itself.

utrace_engine_get and utrace_engine_put maintain a reference count. When it drops to zero, the structure is freed. One reference is held implicitly while the engine is attached to its task.