summaryrefslogtreecommitdiffstats
path: root/runtime/transport/control.h
diff options
context:
space:
mode:
authorDavid Smith <dsmith@redhat.com>2009-02-17 08:32:43 -0600
committerDavid Smith <dsmith@redhat.com>2009-02-17 08:32:43 -0600
commita79ec729450bc24d0943c2c1ee67efa8acb58273 (patch)
treedeae00cc69b4bf5da3a440bb47004c371cefc75f /runtime/transport/control.h
parentea1248d39b26b7f4288751cdf9eb019266bfd91b (diff)
downloadsystemtap-steved-a79ec729450bc24d0943c2c1ee67efa8acb58273.tar.gz
systemtap-steved-a79ec729450bc24d0943c2c1ee67efa8acb58273.tar.xz
systemtap-steved-a79ec729450bc24d0943c2c1ee67efa8acb58273.zip
Reduced control channel code duplication.
2009-02-17 David Smith <dsmith@redhat.com> * control.c: Contains generic control channel functions. * procfs.c: Specific procfs control channel functions. All generic control channel functions moved to control.c. * debugfs.c: New file containing debugfs specific control channel functions. * control.h: New file. * transport.c: Updated file inclusion.
Diffstat (limited to 'runtime/transport/control.h')
-rw-r--r--runtime/transport/control.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/runtime/transport/control.h b/runtime/transport/control.h
new file mode 100644
index 00000000..5e7204ee
--- /dev/null
+++ b/runtime/transport/control.h
@@ -0,0 +1,42 @@
+/* -*- linux-c -*-
+ *
+ * control channel header
+ * Copyright (C) 2009 Red Hat Inc.
+ *
+ * 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.
+ */
+
+#ifndef _CONTROL_H_
+#define _CONTROL_H_
+
+#include <linux/spinlock.h>
+#include <linux/list.h>
+
+static _stp_mempool_t *_stp_pool_q;
+static struct list_head _stp_ctl_ready_q;
+static spinlock_t _stp_ctl_ready_lock;
+static wait_queue_head_t _stp_ctl_wq;
+
+struct _stp_buffer {
+ struct list_head list;
+ int len;
+ int type;
+ char buf[STP_CTL_BUFFER_SIZE];
+};
+
+static struct file_operations _stp_ctl_fops_cmd;
+
+static int _stp_ctl_send(int type, void *data, int len);
+
+static int _stp_ctl_write_fs(int type, void *data, unsigned len);
+
+static int _stp_register_ctl_channel(void);
+static void _stp_unregister_ctl_channel(void);
+
+static int _stp_register_ctl_channel_fs(void);
+static void _stp_unregister_ctl_channel_fs(void);
+
+#endif /* _CONTROL_H_ */