This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[PATCH 7/16] LTTng 0.6.36 for 2.6.18 : Core facility loader
- From: Mathieu Desnoyers <mathieu dot desnoyers at polymtl dot ca>
- To: linux-kernel at vger dot kernel dot org, Christoph Hellwig <hch at infradead dot org>, Andrew Morton <akpm at osdl dot org>, Ingo Molnar <mingo at redhat dot com>, Greg Kroah-Hartman <gregkh at suse dot de>, Thomas Gleixner <tglx at linutronix dot de>, Tom Zanussi <zanussi at us dot ibm dot com>, Karim Yaghmour <karim at opersys dot com>, Paul Mundt <lethal at linux-sh dot org>, Jes Sorensen <jes at sgi dot com>, Richard J Moore <richardj_moore at uk dot ibm dot com>, "Martin J. Bligh" <mbligh at mbligh dot org>, Michel Dagenais <michel dot dagenais at polymtl dot ca>, Douglas Niehaus <niehaus at eecs dot ku dot edu>, ltt-dev at shafik dot org, systemtap at sources dot redhat dot com
- Date: Fri, 24 Nov 2006 16:58:05 -0500
- Subject: [PATCH 7/16] LTTng 0.6.36 for 2.6.18 : Core facility loader
Facility (event group) "core". Dynamic registration.
patch07-2.6.18-lttng-core-0.6.36-facility-loader-core.diff
Signed-off-by : Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
--BEGIN--
--- /dev/null
+++ b/ltt/facilities/ltt-facility-loader-core.c
@@ -0,0 +1,66 @@
+/*
+ * ltt-facility-loader-core.c
+ *
+ * (C) Copyright 2005 -
+ * Mathieu Desnoyers (mathieu.desnoyers@polymtl.ca)
+ *
+ * Contains the LTT facility loader.
+ *
+ */
+
+
+#include <linux/ltt-facilities.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/config.h>
+#include "ltt-facility-loader-core.h"
+
+
+#ifdef CONFIG_LTT
+
+EXPORT_SYMBOL(LTT_FACILITY_SYMBOL);
+EXPORT_SYMBOL(LTT_FACILITY_CHECKSUM_SYMBOL);
+
+static const char ltt_facility_name[] = LTT_FACILITY_NAME;
+
+#define SYMBOL_STRING(sym) #sym
+
+static struct ltt_facility facility = {
+ .name = ltt_facility_name,
+ .num_events = LTT_FACILITY_NUM_EVENTS,
+ .checksum = LTT_FACILITY_CHECKSUM,
+ .symbol = SYMBOL_STRING(LTT_FACILITY_SYMBOL),
+};
+
+static int __init facility_init(void)
+{
+ printk(KERN_INFO "LTT : ltt-facility-core init in kernel\n");
+
+ LTT_FACILITY_SYMBOL = ltt_facility_kernel_register(&facility);
+ LTT_FACILITY_CHECKSUM_SYMBOL = LTT_FACILITY_SYMBOL;
+
+ return LTT_FACILITY_SYMBOL;
+}
+
+#ifndef MODULE
+__initcall(facility_init);
+#else
+module_init(facility_init);
+static void __exit facility_exit(void)
+{
+ int err;
+
+ err = ltt_facility_unregister(LTT_FACILITY_SYMBOL);
+ if (err != 0)
+ printk(KERN_ERR "LTT : Error in unregistering facility.\n");
+
+}
+module_exit(facility_exit)
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Mathieu Desnoyers");
+MODULE_DESCRIPTION("Linux Trace Toolkit Facility");
+
+#endif //MODULE
+
+#endif //CONFIG_LTT
--- /dev/null
+++ b/ltt/facilities/ltt-facility-loader-core.h
@@ -0,0 +1,20 @@
+#ifndef _LTT_FACILITY_LOADER_CORE_H_
+#define _LTT_FACILITY_LOADER_CORE_H_
+
+#ifdef CONFIG_LTT
+
+#include <linux/ltt-facilities.h>
+#include <ltt/ltt-facility-id-core.h>
+
+ltt_facility_t ltt_facility_core;
+ltt_facility_t ltt_facility_core_1A8DE486;
+
+#define LTT_FACILITY_SYMBOL ltt_facility_core
+#define LTT_FACILITY_CHECKSUM_SYMBOL ltt_facility_core_1A8DE486
+#define LTT_FACILITY_CHECKSUM 0x1A8DE486
+#define LTT_FACILITY_NAME "core"
+#define LTT_FACILITY_NUM_EVENTS facility_core_num_events
+
+#endif //CONFIG_LTT
+
+#endif //_LTT_FACILITY_LOADER_CORE_H_
--- /dev/null
+++ b/ltt/facilities/Makefile
@@ -0,0 +1,3 @@
+# LTT facilities makefile
+
+obj-$(CONFIG_LTT) += ltt-facility-loader-core.o
--END--
OpenPGP public key: http://krystal.dyndns.org:8080/key/compudj.gpg
Key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68