X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=probes%2Flttng.c;h=449d8a5cb7f4f5192604d1689ae73935e3bc1e97;hb=3568fb657b9736aaf765b24ce4cc25eaeaadae1c;hp=80256876ceac417173c464a498bb875ace324a97;hpb=0c95667685cf8612eb0d231883874c173b7bb5a1;p=lttng-modules.git diff --git a/probes/lttng.c b/probes/lttng.c index 80256876..449d8a5c 100644 --- a/probes/lttng.c +++ b/probes/lttng.c @@ -28,21 +28,25 @@ #include #include #include -#include "../wrapper/vmalloc.h" -#include "../lttng-events.h" +#include +#include +#include #define TP_MODULE_NOAUTOLOAD #define LTTNG_PACKAGE_BUILD #define CREATE_TRACE_POINTS -#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module +#define TRACE_INCLUDE_PATH instrumentation/events/lttng-module #define TRACE_INCLUDE_FILE lttng +#define LTTNG_INSTRUMENTATION -#include "../instrumentation/events/lttng-module/lttng.h" +#include /* Events written through logger are truncated at 1024 bytes */ #define LTTNG_LOGGER_COUNT_MAX 1024 #define LTTNG_LOGGER_FILE "lttng-logger" +DEFINE_TRACE(lttng_logger); + static struct proc_dir_entry *lttng_logger_dentry; /** @@ -62,7 +66,7 @@ static ssize_t lttng_logger_write(struct file *file, const char __user *user_buf, size_t count, loff_t *ppos) { - unsigned int nr_pages = 1, i; + int nr_pages = 1, i; unsigned long uaddr = (unsigned long) user_buf; struct page *pages[2]; ssize_t written; @@ -102,19 +106,37 @@ static const struct file_operations lttng_logger_operations = { .write = lttng_logger_write, }; +static struct miscdevice logger_dev = { + .minor = MISC_DYNAMIC_MINOR, + .name = "lttng-logger", + .mode = 0666, + .fops = <tng_logger_operations +}; + int __init lttng_logger_init(void) { int ret = 0; wrapper_vmalloc_sync_all(); + + /* /dev/lttng-logger */ + ret = misc_register(&logger_dev); + if (ret) { + printk(KERN_ERR "Error creating LTTng logger device\n"); + goto error; + } + + /* /proc/lttng-logger */ lttng_logger_dentry = proc_create_data(LTTNG_LOGGER_FILE, S_IRUGO | S_IWUGO, NULL, <tng_logger_operations, NULL); if (!lttng_logger_dentry) { - printk(KERN_ERR "Error creating LTTng logger file\n"); + printk(KERN_ERR "Error creating LTTng logger proc file\n"); ret = -ENOMEM; - goto error; + goto error_proc; } + + /* Init */ ret = __lttng_events_init__lttng(); if (ret) goto error_events; @@ -122,13 +144,16 @@ int __init lttng_logger_init(void) error_events: remove_proc_entry("lttng-logger", NULL); +error_proc: + misc_deregister(&logger_dev); error: return ret; } -void __exit lttng_logger_exit(void) +void lttng_logger_exit(void) { __lttng_events_exit__lttng(); if (lttng_logger_dentry) remove_proc_entry("lttng-logger", NULL); + misc_deregister(&logger_dev); }