mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
Initial s390-tools-2.0.0 import
This commit is based on the s390-tools-1.39.0 version. Changes on top of s390-tools-1.39.0: - Add MIT license to all source files - Add LICENSE file - Transform REAMDE to README.md (markdown) - Add AUTHORS.md file - Add CONTRIBUTING.md file - Move changelog from README to CHANGELOG.md file Reviewed-by: Stefan Haberland <sth@linux.vnet.ibm.com> Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
This commit is contained in:
65
libvmdump/dump.cpp
Normal file
65
libvmdump/dump.cpp
Normal file
@@ -0,0 +1,65 @@
|
||||
/*
|
||||
* vmdump - z/VM dump conversion library
|
||||
*
|
||||
* Dump base class
|
||||
*
|
||||
* Copyright IBM Corp. 2004, 2017
|
||||
*
|
||||
* s390-tools is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the MIT license. See LICENSE for details.
|
||||
*/
|
||||
|
||||
#include "dump.h"
|
||||
|
||||
int debug = 0;
|
||||
|
||||
void s390TodToTimeval(uint64_t todval, struct timeval *xtime)
|
||||
{
|
||||
/* adjust todclock to 1970 */
|
||||
todval -= 0x8126d60e46000000LL - (0x3c26700LL * 1000000 * 4096);
|
||||
|
||||
todval >>= 12;
|
||||
xtime->tv_sec = todval / 1000000;
|
||||
xtime->tv_usec = todval % 1000000;
|
||||
}
|
||||
|
||||
Dump::Dump(const char *filename, const char *mode)
|
||||
{
|
||||
fh = fopen(filename, mode);
|
||||
if(!fh){
|
||||
throw(DumpErrnoException("Open dump file failed!"));
|
||||
}
|
||||
}
|
||||
|
||||
Dump::~Dump(void)
|
||||
{
|
||||
if(fh){
|
||||
fclose(fh);
|
||||
}
|
||||
}
|
||||
|
||||
void ProgressBar::initProgress(void)
|
||||
{
|
||||
progressPercentage = -1;
|
||||
}
|
||||
|
||||
void ProgressBar::displayProgress(uint64_t value, uint64_t maxValue)
|
||||
{
|
||||
char progress_bar[51];
|
||||
int j;
|
||||
|
||||
if (progressPercentage == (int) (value * 100 / maxValue))
|
||||
fprintf(stderr, "%6lld of %6lld |\r",
|
||||
(long long) value, (long long) maxValue);
|
||||
else { /* percent value has changed */
|
||||
progressPercentage = (value * 100 / maxValue);
|
||||
for (j = 0; j < progressPercentage / 2; j++)
|
||||
progress_bar[j] = '#';
|
||||
for (j = progressPercentage / 2; j < 50; j++)
|
||||
progress_bar[j] = '-';
|
||||
progress_bar[50] = 0;
|
||||
fprintf(stderr, "%6lld of %6lld |%s| %3d%% \r",
|
||||
(long long) value, (long long) maxValue,
|
||||
progress_bar, progressPercentage);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user