LCOV - code coverage report
Current view: top level - mnt/wasteland/wcohen/systemtap_write/systemtap - tapsets.h (source / functions) Hit Total Coverage
Test: stap.info Lines: 3 4 75.0 %
Date: 2013-03-08 Functions: 20 53 37.7 %
Branches: 7 26 26.9 %

           Branch data     Line data    Source code
       1                 :            : // -*- C++ -*-
       2                 :            : // Copyright (C) 2005-2010 Red Hat Inc.
       3                 :            : //
       4                 :            : // This file is part of systemtap, and is free software.  You can
       5                 :            : // redistribute it and/or modify it under the terms of the GNU General
       6                 :            : // Public License (GPL); either version 2, or (at your option) any
       7                 :            : // later version.
       8                 :            : 
       9                 :            : #ifndef TAPSETS_H
      10                 :            : #define TAPSETS_H
      11                 :            : 
      12                 :            : #include "config.h"
      13                 :            : #include "staptree.h"
      14                 :            : #include "elaborate.h"
      15                 :            : 
      16                 :            : void check_process_probe_kernel_support(systemtap_session& s);
      17                 :            : 
      18                 :            : void register_standard_tapsets(systemtap_session& sess);
      19                 :            : std::vector<derived_probe_group*> all_session_groups(systemtap_session& s);
      20                 :            : std::string common_probe_init (derived_probe* p);
      21                 :            : void common_probe_entryfn_prologue (systemtap_session& s, std::string statestr,
      22                 :            :                                     std::string probe, std::string probe_type,
      23                 :            :                                     bool overload_processing = true);
      24                 :            : void common_probe_entryfn_epilogue (systemtap_session& s,
      25                 :            :                                     bool overload_processing);
      26                 :            : 
      27                 :            : void register_tapset_been(systemtap_session& sess);
      28                 :            : void register_tapset_itrace(systemtap_session& sess);
      29                 :            : void register_tapset_mark(systemtap_session& sess);
      30                 :            : void register_tapset_procfs(systemtap_session& sess);
      31                 :            : void register_tapset_timers(systemtap_session& sess);
      32                 :            : void register_tapset_netfilter(systemtap_session& sess);
      33                 :            : void register_tapset_perf(systemtap_session& sess);
      34                 :            : void register_tapset_utrace(systemtap_session& sess);
      35                 :            : 
      36                 :            : std::string path_remove_sysroot(const systemtap_session& sess,
      37                 :            :                                 const std::string& path);
      38                 :            : 
      39                 :            : // ------------------------------------------------------------------------
      40                 :            : // Generic derived_probe_group: contains an ordinary vector of the
      41                 :            : // given type.  It provides only the enrollment function.
      42                 :            : 
      43 [ #  # ][ #  # ]:          0 : template <class DP> struct generic_dpg: public derived_probe_group
         [ #  # ][ #  # ]
         [ #  # ][ #  # ]
      44                 :            : {
      45                 :            : protected:
      46                 :            :   std::vector <DP*> probes;
      47                 :            : public:
      48 [ +  - ][ +  - ]:       1162 :   generic_dpg () {}
                 [ +  - ]
      49                 :      16124 :   void enroll (DP* probe) { probes.push_back (probe); }
      50                 :            : };
      51                 :            : 
      52                 :            : 
      53                 :            : // ------------------------------------------------------------------------
      54                 :            : // An update visitor that allows replacing assignments with a function call
      55                 :            : 
      56 [ +  - ][ +  - ]:     353557 : struct var_expanding_visitor: public update_visitor
         [ +  - ][ -  + ]
      57                 :            : {
      58                 :            :   static unsigned tick;
      59                 :            :   std::stack<functioncall**> target_symbol_setter_functioncalls;
      60                 :            :   std::stack<defined_op*> defined_ops;
      61                 :            :   std::set<std::string> valid_ops;
      62                 :            :   const std::string *op;
      63                 :            : 
      64                 :            :   var_expanding_visitor ();
      65                 :            :   void visit_assignment (assignment* e);
      66                 :            :   void visit_pre_crement (pre_crement* e);
      67                 :            :   void visit_post_crement (post_crement* e);
      68                 :            :   void visit_delete_statement (delete_statement* s);
      69                 :            :   void visit_defined_op (defined_op* e);
      70                 :            : 
      71                 :            : private:
      72                 :            :   bool rewrite_lvalue(const token *tok, const std::string& eop,
      73                 :            :                       expression*& lvalue, expression*& rvalue);
      74                 :            : };
      75                 :            : 
      76                 :            : #endif // TAPSETS_H
      77                 :            : 
      78                 :            : /* vim: set sw=2 ts=8 cino=>4,n-2,{2,^-2,t0,(0,u0,w1,M1 : */

Generated by: LCOV version 1.9