On Thu, 2006-11-02 at 20:22 -0800, Matt Helsley wrote:
+/*
+ * Watch for events occuring within a task and call the supplied
function
+ * when (and only when) the given event happens.
+ * Only non-modular kernel code may register functions as
task_watchers.
+ */
+#define task_watcher_func(ev, fn) \
+static task_watcher_fn __task_watcher_##ev##_##fn __attribute_used__
\
+ __attribute__ ((__section__ (".task_watchers." #ev))) = fn
+#else
+#error "task_watcher() macro may not be used in modules."
+#endif
You should make this TASK_WATCHER_FUNC() or even just TASK_WATCHER(). It
looks a little goofy in the code that uses it.
Looking at it now could you do something like,
static int __task_watcher_init
audit_alloc(unsigned long val, struct task_struct *tsk)
Instead of a macro? Might be a little less invasive.
Daniel