diff options
author | David Smith <dsmith@redhat.com> | 2009-05-21 16:57:04 -0500 |
---|---|---|
committer | David Smith <dsmith@redhat.com> | 2009-05-21 16:57:04 -0500 |
commit | c8e9eb18d8d13d099a4a177fe53de507c1d9ce8b (patch) | |
tree | ab2388afb795ed1a7ead2fbbf8b9d1b368a8231f /tapsets.h | |
parent | dd9a3bcbef65bde65491d959e9458bc641924811 (diff) | |
parent | 3863e7999255deeaa7f8f4bba7df893773812537 (diff) | |
download | systemtap-steved-c8e9eb18d8d13d099a4a177fe53de507c1d9ce8b.tar.gz systemtap-steved-c8e9eb18d8d13d099a4a177fe53de507c1d9ce8b.tar.xz systemtap-steved-c8e9eb18d8d13d099a4a177fe53de507c1d9ce8b.zip |
Merge commit 'origin/master' into pr7043
Conflicts:
runtime/print.c
runtime/transport/transport.c
runtime/transport/transport_msgs.h
Diffstat (limited to 'tapsets.h')
-rw-r--r-- | tapsets.h | 42 |
1 files changed, 39 insertions, 3 deletions
@@ -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,11 +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 |