summaryrefslogtreecommitdiffstats
path: root/module.h
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2007-06-11 08:04:42 +0000
committerRainer Gerhards <rgerhards@adiscon.com>2007-06-11 08:04:42 +0000
commit81ae51f0393e75b0e65c9b1e84d399e54f2dd7c4 (patch)
tree9e951a6b5f039c57195fc08f37bbe5658166ffe7 /module.h
parent4eecbaff4c4613e8228606038b2f4ad678e4a5d6 (diff)
downloadrsyslog-81ae51f0393e75b0e65c9b1e84d399e54f2dd7c4.tar.gz
rsyslog-81ae51f0393e75b0e65c9b1e84d399e54f2dd7c4.tar.xz
rsyslog-81ae51f0393e75b0e65c9b1e84d399e54f2dd7c4.zip
klogd integration
Diffstat (limited to 'module.h')
-rw-r--r--module.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/module.h b/module.h
new file mode 100644
index 00000000..752b61e5
--- /dev/null
+++ b/module.h
@@ -0,0 +1,62 @@
+
+/* Module definitions for klogd's module support */
+struct kernel_sym
+{
+ unsigned long value;
+ char name[60];
+};
+
+struct module_symbol
+{
+ unsigned long value;
+ const char *name;
+};
+
+struct module_ref
+{
+ struct module *dep; /* "parent" pointer */
+ struct module *ref; /* "child" pointer */
+ struct module_ref *next_ref;
+};
+
+struct module_info
+{
+ unsigned long addr;
+ unsigned long size;
+ unsigned long flags;
+ long usecount;
+};
+
+
+typedef struct { volatile int counter; } atomic_t;
+
+struct module
+{
+ unsigned long size_of_struct; /* == sizeof(module) */
+ struct module *next;
+ const char *name;
+ unsigned long size;
+
+ union
+ {
+ atomic_t usecount;
+ long pad;
+ } uc; /* Needs to keep its size - so says rth */
+
+ unsigned long flags; /* AUTOCLEAN et al */
+
+ unsigned nsyms;
+ unsigned ndeps;
+
+ struct module_symbol *syms;
+ struct module_ref *deps;
+ struct module_ref *refs;
+ int (*init)(void);
+ void (*cleanup)(void);
+ const struct exception_table_entry *ex_table_start;
+ const struct exception_table_entry *ex_table_end;
+#ifdef __alpha__
+ unsigned long gp;
+#endif
+};
+