aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/module.h
diff options
context:
space:
mode:
authorMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>2007-10-19 02:41:06 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-19 14:53:54 -0400
commit8256e47cdc8923e9959eb1d7f95d80da538add80 (patch)
tree4702aa3ad7c9025f70314f1146e551b4e1dfcbb2 /include/linux/module.h
parent09cadedbdc01f1a4bea1f427d4fb4642eaa19da9 (diff)
Linux Kernel Markers
The marker activation functions sits in kernel/marker.c. A hash table is used to keep track of the registered probes and armed markers, so the markers within a newly loaded module that should be active can be activated at module load time. marker_query has been removed. marker_get_first, marker_get_next and marker_release should be used as iterators on the markers. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> Acked-by: "Frank Ch. Eigler" <fche@redhat.com> Cc: Christoph Hellwig <hch@infradead.org> Cc: Rusty Russell <rusty@rustcorp.com.au> Cc: Mike Mason <mmlnx@us.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux/module.h')
-rw-r--r--include/linux/module.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/module.h b/include/linux/module.h
index 642f325e4917..2cbc0b87e329 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -15,6 +15,7 @@
15#include <linux/stringify.h> 15#include <linux/stringify.h>
16#include <linux/kobject.h> 16#include <linux/kobject.h>
17#include <linux/moduleparam.h> 17#include <linux/moduleparam.h>
18#include <linux/marker.h>
18#include <asm/local.h> 19#include <asm/local.h>
19 20
20#include <asm/module.h> 21#include <asm/module.h>
@@ -354,6 +355,10 @@ struct module
354 /* The command line arguments (may be mangled). People like 355 /* The command line arguments (may be mangled). People like
355 keeping pointers to this stuff */ 356 keeping pointers to this stuff */
356 char *args; 357 char *args;
358#ifdef CONFIG_MARKERS
359 struct marker *markers;
360 unsigned int num_markers;
361#endif
357}; 362};
358#ifndef MODULE_ARCH_INIT 363#ifndef MODULE_ARCH_INIT
359#define MODULE_ARCH_INIT {} 364#define MODULE_ARCH_INIT {}
@@ -457,6 +462,8 @@ int unregister_module_notifier(struct notifier_block * nb);
457 462
458extern void print_modules(void); 463extern void print_modules(void);
459 464
465extern void module_update_markers(struct module *probe_module, int *refcount);
466
460#else /* !CONFIG_MODULES... */ 467#else /* !CONFIG_MODULES... */
461#define EXPORT_SYMBOL(sym) 468#define EXPORT_SYMBOL(sym)
462#define EXPORT_SYMBOL_GPL(sym) 469#define EXPORT_SYMBOL_GPL(sym)
@@ -556,6 +563,11 @@ static inline void print_modules(void)
556{ 563{
557} 564}
558 565
566static inline void module_update_markers(struct module *probe_module,
567 int *refcount)
568{
569}
570
559#endif /* CONFIG_MODULES */ 571#endif /* CONFIG_MODULES */
560 572
561struct device_driver; 573struct device_driver;