From a846e9cd2b991b2b6f895b45f0a2af1ce2c994bc Mon Sep 17 00:00:00 2001 From: hunt Date: Wed, 14 Mar 2007 16:11:30 +0000 Subject: 2007-03-14 Martin Hunt * staprun.c: Renamed from stpd.c. Removed quiet and print_only options. Added "-x" option as an alias for "-t". Removed "-m" option. Updated arg processing to leave 4 slots for modoptions[]. Bump the priority of staprun. * ctl.c: New. Transport control channel functions. * relay.c: New. Relayfs control functions for new transport. * relay_old.c: New. Relayfs control functions for older versions of relayfs. * mainloop.c: New. Staprun main loop. * staprun.h: Renamed from librelay.h. Cleaned up. * stap_merge.c: Renamed. Updated for modified save format. --- runtime/staprun/ctl.c | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 runtime/staprun/ctl.c (limited to 'runtime/staprun/ctl.c') diff --git a/runtime/staprun/ctl.c b/runtime/staprun/ctl.c new file mode 100644 index 00000000..9336631c --- /dev/null +++ b/runtime/staprun/ctl.c @@ -0,0 +1,40 @@ +/* -*- linux-c -*- + * + * ctl.c - staprun control channel + * + * This file is part of systemtap, and is free software. You can + * redistribute it and/or modify it under the terms of the GNU General + * Public License (GPL); either version 2, or (at your option) any + * later version. + * + * Copyright (C) 2007 Red Hat Inc. + */ + +#include "staprun.h" + +int init_ctl_channel(void) +{ + char buf[128]; + struct statfs st; + + if (statfs("/sys/kernel/debug", &st) == 0 && (int) st.f_type == (int) DEBUGFS_MAGIC) + sprintf (buf, "/sys/kernel/debug/systemtap_%d/cmd", getpid()); + else + sprintf (buf, "/proc/systemtap_%d/cmd", getpid()); + + dbug("Opening %s\n", buf); + control_channel = open(buf, O_RDWR); + if (control_channel < 0) { + fprintf(stderr, "ERROR: couldn't open control channel %s: errcode = %s\n", buf, strerror(errno)); + return -1; + } + return 0; +} + +void close_ctl_channel(void) +{ + if (control_channel > 0) { + close(control_channel); + control_channel = 0; + } +} -- cgit