1/* Copyright (C) 2021 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 27class Expression; 28class StringBuilder; 29 30class UserLabel 31{ 32public: 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 55private: 56 void gen_time_expr (StringBuilder *sb, long long hrtime, char *op); 57 58 static int last_id; 59}; 60 61#endif 62