From 2972246a08bfc7c516455ecc4ef976e10c0ddb2c Mon Sep 17 00:00:00 2001 From: hunt Date: Fri, 12 Oct 2007 19:42:32 +0000 Subject: 2007-10-12 Martin Hunt Changes to separate the symbols from the command channel. * cap.c (init_cap): Add CAP_DAC_OVERRIDE. * staprun.h: Change init_ctl_channel prototype. * ctl.c (init_ctl_channel): Modify to open either a command or symbol channel. Use ".cmd" and ".symbols" as the new names. * mainloop.c (init_stapio): Call init_ctl_channel(0); * staprun.c (cleanup): Call stop_symbol_thread(). (main): Call start_symbol_thread(). * staprun_funcs.c (handle_symbols): Make a thread. (start_symbol_thread): New. (stop_symbol_thread): New. --- runtime/staprun/ctl.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'runtime/staprun/ctl.c') diff --git a/runtime/staprun/ctl.c b/runtime/staprun/ctl.c index 7fe57206..af7e6c1a 100644 --- a/runtime/staprun/ctl.c +++ b/runtime/staprun/ctl.c @@ -12,18 +12,23 @@ #include "staprun.h" -int init_ctl_channel(void) +int init_ctl_channel(int symbols) { - char buf[PATH_MAX]; + char *cname, buf[PATH_MAX]; struct statfs st; int old_transport = 0; + + if (symbols) + cname = ".symbols"; + else + cname = ".cmd"; if (statfs("/sys/kernel/debug", &st) == 0 && (int) st.f_type == (int) DEBUGFS_MAGIC) { - if (sprintf_chk(buf, "/sys/kernel/debug/systemtap/%s/cmd", modname)) + if (sprintf_chk(buf, "/sys/kernel/debug/systemtap/%s/%s", modname, cname)) return -1; } else { old_transport = 1; - if (sprintf_chk(buf, "/proc/systemtap/%s/cmd", modname)) + if (sprintf_chk(buf, "/proc/systemtap/%s/%s", modname, cname)) return -1; } -- cgit