(root)/
binutils-2.41/
gprofng/
src/
UserLabel.h
       1  /* Copyright (C) 2021-2023 Free Software Foundation, Inc.
       2     Contributed by Oracle.
       3  
       4     This file is part of GNU Binutils.
       5  
       6     This program is free software; you can redistribute it and/or modify
       7     it under the terms of the GNU General Public License as published by
       8     the Free Software Foundation; either version 3, or (at your option)
       9     any later version.
      10  
      11     This program is distributed in the hope that it will be useful,
      12     but WITHOUT ANY WARRANTY; without even the implied warranty of
      13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      14     GNU General Public License for more details.
      15  
      16     You should have received a copy of the GNU General Public License
      17     along with this program; if not, write to the Free Software
      18     Foundation, 51 Franklin Street - Fifth Floor, Boston,
      19     MA 02110-1301, USA.  */
      20  
      21  #ifndef _USER_LABEL_H
      22  #define _USER_LABEL_H
      23  
      24  #include <time.h>
      25  #include "vec.h"
      26  
      27  class Expression;
      28  class StringBuilder;
      29  
      30  class UserLabel
      31  {
      32  public:
      33  
      34    enum
      35    {
      36      REL_TIME = 0,
      37      ABS_TIME = 1,
      38      CUR_TIME = 2
      39    };
      40  
      41    UserLabel (char *_name);
      42    ~UserLabel ();
      43    void register_user_label (int groupId);
      44    void gen_expr ();
      45    char *dump ();
      46    static void dump (const char *msg, Vector<UserLabel*> *labels);
      47  
      48    char *name, *comment, *str_expr, *all_times, *hostname;
      49    bool start_f, stop_f;
      50    Expression *expr;
      51    timeval start_tv;
      52    long long atime, timeStart, timeStop, start_sec, start_hrtime;
      53    int id, relative;
      54  
      55  private:
      56    void gen_time_expr (StringBuilder *sb, long long hrtime, char *op);
      57  
      58    static int last_id;
      59  };
      60  
      61  #endif