summaryrefslogtreecommitdiffstats
path: root/tapsets.h
diff options
context:
space:
mode:
authorDave Brolley <brolley@redhat.com>2009-05-11 14:23:59 -0400
committerDave Brolley <brolley@redhat.com>2009-05-11 14:23:59 -0400
commit7a0768a871545f8af96097de42837027922ddec1 (patch)
treeb4dc0a456e43f368af26938aad7afa84e4279d90 /tapsets.h
parentbbedb0a65e2f2ddee8f545e807310e7d1daed501 (diff)
parent5896cd059949413cf56678d7a7fa6c0788f576b5 (diff)
downloadsystemtap-steved-7a0768a871545f8af96097de42837027922ddec1.tar.gz
systemtap-steved-7a0768a871545f8af96097de42837027922ddec1.tar.xz
systemtap-steved-7a0768a871545f8af96097de42837027922ddec1.zip
Merge branch 'master' of git://sources.redhat.com/git/systemtap
Conflicts: tapsets.cxx
Diffstat (limited to 'tapsets.h')
-rw-r--r--tapsets.h41
1 files changed, 38 insertions, 3 deletions
diff --git a/tapsets.h b/tapsets.h
index 406a69d9..7a74ad31 100644
--- a/tapsets.h
+++ b/tapsets.h
@@ -1,5 +1,5 @@
// -*- C++ -*-
-// Copyright (C) 2005 Red Hat Inc.
+// Copyright (C) 2005, 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
@@ -13,12 +13,47 @@
#include "staptree.h"
#include "elaborate.h"
-struct derived_probe_group;
-
void register_standard_tapsets(systemtap_session& sess);
std::vector<derived_probe_group*> all_session_groups(systemtap_session& s);
int dwfl_report_offline_predicate (const char* modname, const char* filename);
+void common_probe_entryfn_prologue (translator_output* o, std::string statestr,
+ std::string new_pp, bool overload_processing = true);
+void common_probe_entryfn_epilogue (translator_output* o, bool overload_processing = true);
+
+void register_tapset_been(systemtap_session& sess);
+void register_tapset_itrace(systemtap_session& sess);
+void register_tapset_mark(systemtap_session& sess);
+void register_tapset_perfmon(systemtap_session& sess);
+void register_tapset_procfs(systemtap_session& sess);
+void register_tapset_timers(systemtap_session& sess);
+void register_tapset_utrace(systemtap_session& sess);
+
+
+// ------------------------------------------------------------------------
+// Generic derived_probe_group: contains an ordinary vector of the
+// given type. It provides only the enrollment function.
+
+template <class DP> struct generic_dpg: public derived_probe_group
+{
+protected:
+ std::vector <DP*> probes;
+public:
+ generic_dpg () {}
+ void enroll (DP* probe) { probes.push_back (probe); }
+};
+
+
+// ------------------------------------------------------------------------
+// An update visitor that allows replacing assignments with a function call
+
+struct var_expanding_visitor: public update_visitor
+{
+ static unsigned tick;
+ std::stack<functioncall**> target_symbol_setter_functioncalls;
+ var_expanding_visitor() {}
+ void visit_assignment (assignment* e);
+};
#endif // TAPSETS_H