--- /dev/null +++ b/ltt/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 +#include +#include +#include +#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/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 +#include + +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_