X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=ltt-debugfs-abi.c;h=37cccfa35f472f0b43b9aff9693f959dc8680f8a;hb=4d3e89e379fc66480d729abe8daa5c86eb585400;hp=81afdbdbae28f13459fc84f9e3ed7dbe97137945;hpb=1ec65de1d61ef4d4c6de6f9b2186167c9de1984e;p=lttng-modules.git diff --git a/ltt-debugfs-abi.c b/ltt-debugfs-abi.c index 81afdbdb..37cccfa3 100644 --- a/ltt-debugfs-abi.c +++ b/ltt-debugfs-abi.c @@ -26,6 +26,7 @@ #include #include +#include #include #include #include @@ -43,6 +44,7 @@ */ static struct dentry *lttng_dentry; +static struct proc_dir_entry *lttng_proc_dentry; static const struct file_operations lttng_fops; static const struct file_operations lttng_session_fops; static const struct file_operations lttng_channel_fops; @@ -180,8 +182,8 @@ long lttng_abi_add_context(struct file *file, context_param.u.perf_counter.config, context_param.u.perf_counter.name, ctx); - case LTTNG_KERNEL_CONTEXT_COMM: - return lttng_add_comm_to_ctx(ctx); + case LTTNG_KERNEL_CONTEXT_PROCNAME: + return lttng_add_procname_to_ctx(ctx); default: return -EINVAL; } @@ -266,7 +268,7 @@ void lttng_metadata_create_events(struct file *channel_file) * We tolerate no failure path after event creation. It will stay * invariant for the rest of the session. */ - event = ltt_event_create(channel, &metadata_params, NULL); + event = ltt_event_create(channel, &metadata_params, NULL, NULL); if (!event) { goto create_error; } @@ -532,7 +534,7 @@ int lttng_abi_create_event(struct file *channel_file, * We tolerate no failure path after event creation. It * will stay invariant for the rest of the session. */ - event = ltt_event_create(channel, &event_param, NULL); + event = ltt_event_create(channel, &event_param, NULL, NULL); if (!event) { ret = -EINVAL; goto event_error; @@ -542,7 +544,12 @@ int lttng_abi_create_event(struct file *channel_file, /* The event holds a reference on the channel */ atomic_long_inc(&channel_file->f_count); break; - case LTTNG_KERNEL_SYSCALLS: + case LTTNG_KERNEL_SYSCALL: + /* + * Only all-syscall tracing supported for now. + */ + if (event_param.name[0] != '\0') + return -EINVAL; ret = lttng_syscalls_register(channel, NULL); if (ret) goto fd_error; @@ -745,8 +752,14 @@ int __init ltt_debugfs_abi_init(void) wrapper_vmalloc_sync_all(); lttng_dentry = debugfs_create_file("lttng", S_IWUSR, NULL, NULL, - <tng_fops); - if (IS_ERR(lttng_dentry) || !lttng_dentry) { + <tng_fops); + if (IS_ERR(lttng_dentry)) + lttng_dentry = NULL; + + lttng_proc_dentry = proc_create_data("lttng", S_IWUSR, NULL, + <tng_fops, NULL); + + if (!lttng_dentry && !lttng_proc_dentry) { printk(KERN_ERR "Error creating LTTng control file\n"); ret = -ENOMEM; goto error; @@ -757,5 +770,8 @@ error: void __exit ltt_debugfs_abi_exit(void) { - debugfs_remove(lttng_dentry); + if (lttng_dentry) + debugfs_remove(lttng_dentry); + if (lttng_proc_dentry) + remove_proc_entry("lttng", NULL); }