Wolfgang Thallergcc16 merge934c3885 months agoHistory
94 lines · 2.5 KB · C++
RawDownload
/* Copyright (C) 2021-2026 Free Software Foundation, Inc.   Contributed by Oracle.    This file is part of GNU Binutils.    This program is free software; you can redistribute it and/or modify   it under the terms of the GNU General Public License as published by   the Free Software Foundation; either version 3, or (at your option)   any later version.    This program is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   GNU General Public License for more details.    You should have received a copy of the GNU General Public License   along with this program; if not, write to the Free Software   Foundation, 51 Franklin Street - Fifth Floor, Boston,   MA 02110-1301, USA.  */ #include "config.h"#include <assert.h>#include "Sample.h"#include "util.h"#include "Exp_Layout.h" Sample::Sample (int num){  number = num;  prusage = NULL;  start_time = end_time = 0;  start_label = end_label = NULL;  validated = false;} Sample::~Sample (){  delete prusage;  free (start_label);  free (end_label);} PrUsage *Sample::get_usage (){  if (validated == false)    {      validate_usage ();      validated = true;    }  return prusage;} voidSample::validate_usage (){  if (prusage == NULL || validated)    return;  validated = true;   // Make sure that none of the times are negative, force to zero if so  if (prusage->pr_utime < 0)    prusage->pr_utime = 0;  if (prusage->pr_stime < 0)    prusage->pr_stime = 0;  if (prusage->pr_ttime < 0)    prusage->pr_ttime = 0;  if (prusage->pr_tftime < 0)    prusage->pr_tftime = 0;  if (prusage->pr_dftime < 0)    prusage->pr_dftime = 0;  if (prusage->pr_kftime < 0)    prusage->pr_kftime = 0;  if (prusage->pr_ltime < 0)    prusage->pr_ltime = 0;  if (prusage->pr_slptime < 0)    prusage->pr_slptime = 0;  if (prusage->pr_wtime < 0)    prusage->pr_wtime = 0;  if (prusage->pr_stoptime < 0)    prusage->pr_stoptime = 0;  if (prusage->pr_rtime < 0)    prusage->pr_rtime = 0;   // Now make sure that the sum of states is >= prusage->pr_rtime  hrtime_t sum = prusage->pr_utime + prusage->pr_stime + prusage->pr_ttime	  + prusage->pr_tftime + prusage->pr_dftime + prusage->pr_kftime	  + prusage->pr_ltime + prusage->pr_slptime + prusage->pr_wtime	  + prusage->pr_stoptime;   sum = sum - prusage->pr_rtime;  if (sum < 0)// increment sleep time to make it match    prusage->pr_slptime = prusage->pr_slptime - sum;}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t