mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
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>
73 lines
1.6 KiB
C++
73 lines
1.6 KiB
C++
/*
|
|
* vmdump - z/VM dump conversion library
|
|
*
|
|
* Dump convert function: Converts VMDUMP to LKCD dump
|
|
*
|
|
* 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 "lkcd_dump.h"
|
|
#include "vm_dump.h"
|
|
|
|
int vmdump_convert(const char* inputFileName, const char* outputFileName,
|
|
const char* progName)
|
|
{
|
|
/* Do the conversion */
|
|
try {
|
|
switch(VMDump::getDumpType(inputFileName)){
|
|
case Dump::DT_VM64_BIG:
|
|
{
|
|
LKCDDump64* lkcddump;
|
|
VMDump64Big* vmdump;
|
|
|
|
vmdump = new VMDump64Big(inputFileName);
|
|
vmdump->printInfo();
|
|
lkcddump = new LKCDDump64(vmdump,
|
|
vmdump->getRegisterContent());
|
|
lkcddump->writeDump(outputFileName);
|
|
delete vmdump;
|
|
delete lkcddump;
|
|
break;
|
|
}
|
|
case Dump::DT_VM64:
|
|
{
|
|
LKCDDump64* lkcddump;
|
|
VMDump64* vmdump;
|
|
|
|
vmdump = new VMDump64(inputFileName);
|
|
vmdump->printInfo();
|
|
lkcddump = new LKCDDump64(vmdump,
|
|
vmdump->getRegisterContent());
|
|
lkcddump->writeDump(outputFileName);
|
|
delete vmdump;
|
|
delete lkcddump;
|
|
break;
|
|
}
|
|
case Dump::DT_VM32:
|
|
{
|
|
LKCDDump32* lkcddump;
|
|
VMDump32* vmdump;
|
|
|
|
vmdump = new VMDump32(inputFileName);
|
|
vmdump->printInfo();
|
|
lkcddump = new LKCDDump32(vmdump,
|
|
vmdump->getRegisterContent());
|
|
lkcddump->writeDump(outputFileName);
|
|
delete vmdump;
|
|
delete lkcddump;
|
|
break;
|
|
}
|
|
default:
|
|
throw DumpException("This is not a vmdump");
|
|
}
|
|
} catch (DumpException ex) {
|
|
printf("%s: %s\n", progName, ex.what());
|
|
fflush(stdout);
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|