diff options
author | Scott Tepavich | 2012-03-20 16:14:32 +0000 |
---|---|---|
committer | Eugene Tarassov | 2012-03-20 17:27:36 +0000 |
commit | 3364ae47f9cf79a0c5dfa900078805bc2f978c83 (patch) | |
tree | 0aae474366a97e9da036b3134a248703a960abbf /agent/system | |
parent | 2b11b7d5e7e3a277223f01de3137e5bcca087cde (diff) | |
download | org.eclipse.tcf.agent-3364ae47f9cf79a0c5dfa900078805bc2f978c83.tar.gz org.eclipse.tcf.agent-3364ae47f9cf79a0c5dfa900078805bc2f978c83.tar.xz org.eclipse.tcf.agent-3364ae47f9cf79a0c5dfa900078805bc2f978c83.zip |
Bug [374788] Add kernel name as comparitor for context queries
Diffstat (limited to 'agent/system')
-rw-r--r-- | agent/system/GNU/Linux/tcf/context-linux.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/agent/system/GNU/Linux/tcf/context-linux.c b/agent/system/GNU/Linux/tcf/context-linux.c index 361de6d2..e9da67d6 100644 --- a/agent/system/GNU/Linux/tcf/context-linux.c +++ b/agent/system/GNU/Linux/tcf/context-linux.c @@ -32,6 +32,7 @@ #include <ctype.h> #include <asm/unistd.h> #include <sys/ptrace.h> +#include <sys/utsname.h> #include <linux/kdev_t.h> #include <tcf/framework/context.h> #include <tcf/framework/events.h> @@ -1383,6 +1384,14 @@ static int cmp_linux_tid(Context * ctx, const char * v) { return ctx->parent != NULL && EXT(ctx)->pid == atoi(v); } +static int cmp_linux_kernel_name(Context * ctx, const char * v) { + struct utsname un; + if (uname(&un) != 0) { + return 0; + } + return (strcmp(un.sysname, v)== 0); +} + void init_contexts_sys_dep(void) { context_extension_offset = context_extension(sizeof(ContextExtensionLinux)); add_waitpid_listener(waitpid_listener, NULL); @@ -1394,6 +1403,7 @@ void init_contexts_sys_dep(void) { create_eventpoint("main", NULL, eventpoint_at_main, NULL); add_context_query_comparator("pid", cmp_linux_pid); add_context_query_comparator("tid", cmp_linux_tid); + add_context_query_comparator("KernelName", cmp_linux_kernel_name); } #endif /* if ENABLE_DebugContext */ |