X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=probes%2Flttng.c;h=449d8a5cb7f4f5192604d1689ae73935e3bc1e97;hb=4d328377868e2f8fc2027c2492c3cd53615dffdc;hp=09045fac18529702ad2ceac0ce7319c8cf2f549b;hpb=0b3f6dcb1b42a6a10690830c54f210e3ca7065bf;p=lttng-modules.git diff --git a/probes/lttng.c b/probes/lttng.c index 09045fac..449d8a5c 100644 --- a/probes/lttng.c +++ b/probes/lttng.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -105,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; @@ -125,6 +144,8 @@ int __init lttng_logger_init(void) error_events: remove_proc_entry("lttng-logger", NULL); +error_proc: + misc_deregister(&logger_dev); error: return ret; } @@ -134,4 +155,5 @@ void lttng_logger_exit(void) __lttng_events_exit__lttng(); if (lttng_logger_dentry) remove_proc_entry("lttng-logger", NULL); + misc_deregister(&logger_dev); }