Author: janderwald
Date: Fri Jul 20 22:55:03 2007
New Revision: 27759
URL:
http://svn.reactos.org/svn/reactos?rev=27759&view=rev
Log:
- make sysreg work again under Windows
Modified:
trunk/reactos/tools/sysreg/conf_parser.cpp
trunk/reactos/tools/sysreg/conf_parser.h
trunk/reactos/tools/sysreg/namedpipe_reader.cpp
trunk/reactos/tools/sysreg/rosboot_test.cpp
trunk/reactos/tools/sysreg/rosboot_test.h
trunk/reactos/tools/sysreg/txtmode.cfg
Modified: trunk/reactos/tools/sysreg/conf_parser.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/sysreg/conf_parser.c…
==============================================================================
--- trunk/reactos/tools/sysreg/conf_parser.cpp (original)
+++ trunk/reactos/tools/sysreg/conf_parser.cpp Fri Jul 20 22:55:03 2007
@@ -59,12 +59,15 @@
if (ws_pos != string::npos && ws_pos > 0 && ws_pos <
s_buffer.size())
{
string name = s_buffer.substr (0, ws_pos);
- string value = s_buffer.substr (ws_pos + 1);
+ string value = s_buffer.substr (ws_pos + 1, s_buffer.size() - ws_pos - 2);
+/*
if (value[value.length () -1] == 0xA)
{
// remove newline char
value[value.length ()-1] = _T('\0');
}
+*/
+// cerr << "name: "<< name <<
"value: "<< value << "|" << endl;
m_Map[name] = value;
ret = true;
}
@@ -88,6 +91,31 @@
ConfValue = it->second;
return true;
}
+//----------------------------------------------------------------------------------------
+ bool ConfigParser::getDoubleValue(string ConfVariable, double & ConfValue)
+ {
+ ConfigMap::iterator it = m_Map.find (ConfVariable);
+ if (it == m_Map.end ())
+ {
+ cerr << "ConfigParser::getValue failed to find " << ConfVariable
<< endl;
+ return false;
+ }
+ ConfValue = _tcstod(it->second.c_str(), NULL);
+ return true;
+ }
+//-----------------------------------------------------------------------------------------
+ bool ConfigParser::getIntValue(string ConfVariable, long int & ConfValue)
+ {
+ ConfigMap::iterator it = m_Map.find (ConfVariable);
+ if (it == m_Map.end ())
+ {
+ cerr << "ConfigParser::getValue failed to find " << ConfVariable
<< endl;
+ return false;
+ }
+
+ ConfValue = _tcstol(it->second.c_str(), NULL, 10);
+ return true;
+ }
} // end of namespace Sysreg_
Modified: trunk/reactos/tools/sysreg/conf_parser.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/sysreg/conf_parser.h…
==============================================================================
--- trunk/reactos/tools/sysreg/conf_parser.h (original)
+++ trunk/reactos/tools/sysreg/conf_parser.h Fri Jul 20 22:55:03 2007
@@ -77,6 +77,9 @@
bool getStringValue(string & ConfVariable, string & ConfValue);
+ bool getDoubleValue(string ConfVariable, double & value);
+ bool getIntValue(string ConfVariable, long int & value);
+
protected:
ConfigMap m_Map;
@@ -84,6 +87,6 @@
} // end of namspace Sysreg_
-
+
#endif /* end of CONF_PARSER_H__ */
Modified: trunk/reactos/tools/sysreg/namedpipe_reader.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/sysreg/namedpipe_rea…
==============================================================================
--- trunk/reactos/tools/sysreg/namedpipe_reader.cpp (original)
+++ trunk/reactos/tools/sysreg/namedpipe_reader.cpp Fri Jul 20 22:55:03 2007
@@ -41,7 +41,7 @@
return false;
}
- h_Pipe = CreateFile(PipeCmd.c_str(),
+ h_Pipe = CreateFile("\\\\.\\pipe\\qemu", //PipeCmd.c_str(),
GENERIC_WRITE | GENERIC_READ,
0,
NULL,
@@ -51,7 +51,7 @@
NULL);
if(INVALID_HANDLE_VALUE == h_Pipe) {
- cerr << "NamedPipeReader::openPipe> failed to open pipe " <<
PipeCmd << GetLastError() << endl;
+ cerr << "NamedPipeReader::openPipe> failed to open pipe "
<< PipeCmd << " Error:" << GetLastError() << endl;
h_Pipe = NULLVAL;
return false;
}
@@ -70,7 +70,7 @@
bool NamedPipeReader::closeSource()
{
- if (!h_Pipe)
+ if (h_Pipe == INVALID_HANDLE_VALUE)
{
cerr << "NamedPipeReader::closePipe> pipe is not open" <<
endl;
return false;
Modified: trunk/reactos/tools/sysreg/rosboot_test.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/sysreg/rosboot_test.…
==============================================================================
--- trunk/reactos/tools/sysreg/rosboot_test.cpp (original)
+++ trunk/reactos/tools/sysreg/rosboot_test.cpp Fri Jul 20 22:55:03 2007
@@ -16,7 +16,7 @@
#include "file_reader.h"
#include "os_support.h"
-#include <iostream>
+#include <iostream>
#include <vector>
#include <fstream>
#include <time.h>
@@ -25,6 +25,7 @@
#include <stdlib.h>
#include <assert.h>
#include <math.h>
+#include <signal.h>
namespace Sysreg_
@@ -43,20 +44,23 @@
using std::ofstream;
#endif
- string RosBootTest::VARIABLE_NAME = _T("ROSBOOT_CMD");
- string RosBootTest::CLASS_NAME = _T("rosboot");
- string RosBootTest::DEBUG_PORT = _T("ROSBOOT_DEBUG_PORT");
- string RosBootTest::DEBUG_FILE = _T("ROSBOOT_DEBUG_FILE");
- string RosBootTest::TIME_OUT = _T("ROSBOOT_TIME_OUT");
- string RosBootTest::PID_FILE= _T("ROSBOOT_PID_FILE");
- string RosBootTest::DELAY_READ = _T("ROSBOOT_DELAY_READ");
- string RosBootTest::CHECK_POINT = _T("ROSBOOT_CHECK_POINT");
- string RosBootTest::SYSREG_CHECKPOINT = _T("SYSREG_CHECKPOINT:");
- string RosBootTest::CRITICAL_APP = _T("ROSBOOT_CRITICAL_APP");
- string RosBootTest::TERMINATE_EMULATOR = _T("ROSBOOT_TERMINATE_EMULATOR");
-
-//---------------------------------------------------------------------------------------
- RosBootTest::RosBootTest() : m_Timeout(60.0), m_Delayread(0)
+ string RosBootTest::ROS_EMU_TYPE= _T("ROS_EMU_TYPE");
+ string RosBootTest::EMU_TYPE_QEMU = _T("qemu");
+ string RosBootTest::EMU_TYPE_VMWARE = _T("vmware");
+ string RosBootTest::ROS_EMU_PATH = _T("ROS_EMU_PATH");
+ string RosBootTest::ROS_HDD_IMAGE= _T("ROS_HDD_IMAGE");
+ string RosBootTest::ROS_CD_IMAGE = _T("ROS_CD_IMAGE");
+ string RosBootTest::ROS_MAX_TIME = _T("ROS_MAX_TIME");
+ string RosBootTest::ROS_LOG_FILE = _T("ROS_LOG_FILE");
+ string RosBootTest::ROS_SYM_DIR = _T("ROS_SYM_DIR");
+ string RosBootTest::ROS_DELAY_READ = _T("ROS_DELAY_READ");
+ string RosBootTest::ROS_SYSREG_CHECKPOINT = _T("SYSREG_CHECKPOINT:");
+ string RosBootTest::ROS_CRITICAL_IMAGE = _T("ROS_CRITICAL_IMAGE");
+ string RosBootTest::ROS_EMU_KILL = _T("ROS_EMU_KILL");
+ string RosBootTest::ROS_EMU_MEM = _T("ROS_EMU_MEM");
+
+//---------------------------------------------------------------------------------------
+ RosBootTest::RosBootTest() : m_MaxTime(0.0), m_DelayRead(0)
{
}
@@ -81,196 +85,183 @@
//---------------------------------------------------------------------------------------
void RosBootTest::delayRead()
{
- if (m_Delayread)
+ if (m_DelayRead)
{
///
/// delay reading until emulator is ready
///
- OsSupport::sleep(m_Delayread * CLOCKS_PER_SEC );
+ OsSupport::sleep(m_DelayRead);
}
}
-
-//---------------------------------------------------------------------------------------
- bool RosBootTest::configurePipe()
+//----------------------------------------------------------------------------------------
+ bool RosBootTest::configureQemu()
{
- if (!_tcscmp(m_DebugPort.c_str(), _T("qemupipe")))
- {
- string::size_type pipe_pos = m_BootCmd.find(_T("-serial pipe:"));
- if (pipe_pos != string::npos)
+ string qemupath;
+ string::size_type pos;
+
+ bool bootfromcd = false;
+
+ if (m_CDImage != _T("") )
+ {
+ bootfromcd = true;
+ }
+
+#ifdef __LINUX__
+ pos = m_EmuPath.find_last_of(_T("/"));
+#else
+ pos = m_EmuPath.find_last_of(_T("\\"));
+#endif
+ if (pos == string::npos)
+ {
+ cerr << "Error: ROS_EMU_PATH is invalid!!!" << endl;
+ return false;
+ }
+ qemupath = m_EmuPath.substr(0, pos);
+
+
+ if (m_HDDImage == _T(""))
+ {
+ if(!bootfromcd)
{
- pipe_pos += 12;
- string::size_type pipe_pos_end = m_BootCmd.find (_T(" "), pipe_pos);
- if (pipe_pos != string::npos && pipe_pos_end != string::npos)
- {
- m_Pipe = _T("\\\\.\\pipe\\") + m_BootCmd.substr (pipe_pos, pipe_pos_end
- pipe_pos);
+ cerr << "Error: ROS_CD_IMAGE and ROS_HDD_IMAGE is not
set!!!" << endl;
+ return false;
+ }
+ string qemuimgdir = qemupath;
+#ifdef __LINUX___
+ qemuimgdir += _T("qemu-img");
+#else
+ qemuimgdir += _T("qemu-img.exe");
+#endif
+ ///
+ /// FIXME
+ /// call qemu-img to create the tool
+ ///
+ cerr << "Creating HDD Image ..." << endl;
+ }
+
+ if (m_MaxMem == "")
+ {
+ // default to 64M
+ m_MaxMem = "64";
+ }
+ if (bootfromcd)
+ {
+ m_BootCmd = m_EmuPath + _T(" -serial pipe:qemu -L ") + qemupath +
_T(" -m ") + m_MaxMem + _T(" -hda ") + m_HDDImage + _T(" -boot d
-cdrom ") + m_CDImage;
+ }
+ else
+ {
+ m_BootCmd = m_EmuPath + _T(" -L ") + qemupath + _T(" -m
") + m_MaxMem + _T(" -boot c -serial pipe:sysreg");
+ }
+
+ if (m_KillEmulator == _T("yes"))
+ {
#ifdef __LINUX__
- m_DataSource = new PipeReader();
+ m_BootCmd += _T(" -pidfile pid.txt");
+#endif
+ }
+ else
+ {
+ m_BootCmd += _T(" -no-reboot ");
+ }
+
+ cerr << "Opening Data Source:" << m_BootCmd << endl;
+
+
+#ifdef __LINUX__
+ m_DataSource = new PipeReader();
+ m_Src = m_BootCmd;
#else
- m_DataSource = new NamedPipeReader();
+ m_DataSource = new NamedPipeReader();
+ m_Src = _T("\\\\.\\pipe\\qemu");
+
+ if (!executeBootCmd())
+ {
+ cerr << "Error: failed to launch emulator with: " <<
m_BootCmd << endl;
+ return false;
+ }
#endif
- return true;
- }
- }
- }
- else if (!_tcscmp(m_DebugPort.c_str(), _T("vmwarepipe")))
- {
- cerr << "VmWare debug pipe is currently fixed to
\\\\.\\pipe\\vmwaredebug" << endl;
- m_Pipe = _T("\\\\.\\pipe\\vmwaredebug");
-#ifdef __LINUX__
- m_DataSource = new PipeReader();
-#else
- m_DataSource = new NamedPipeReader();
-#endif
-
- return true;
- }
-
- //
- // FIXME
- // support other emulators
+ return true;
+ }
+
+//---------------------------------------------------------------------------------------
+ bool RosBootTest::configureVmWare()
+ {
+ cerr << "VmWare is currently not yet supported" << endl;
return false;
}
//---------------------------------------------------------------------------------------
- bool RosBootTest::configureFile()
- {
- if (!_tcscmp(m_DebugPort.c_str(), _T("qemufile")))
- {
- string::size_type file_pos = m_BootCmd.find(_T("-serial file:"));
- if (file_pos != string::npos)
- {
- file_pos += 12;
- string::size_type file_pos_end = m_BootCmd.find (_T(" "), file_pos);
- if (file_pos != string::npos && file_pos_end != string::npos)
- {
- m_File = m_BootCmd.substr (file_pos, file_pos_end - file_pos);
- m_DataSource = new FileReader();
- return true;
- }
- cerr << "Error: missing space at end of option" <<
endl;
- }
- }
- else if (!_tcscmp(m_DebugPort.c_str(), _T("vmwarefile")))
- {
- cerr << "VmWare debug file is currently fixed to debug.log"
<< endl;
- m_File = "debug.log";
- m_DataSource = new FileReader();
- return true;
- }
-
- //
- // FIXME
- // support other emulators
-
- return false;
- }
-//---------------------------------------------------------------------------------------
bool RosBootTest::readConfigurationValues(ConfigParser &conf_parser)
{
- ///
- /// read required configuration arguments
- ///
-
-
-
- if (!conf_parser.getStringValue (RosBootTest::DEBUG_PORT, m_DebugPort))
- {
- cerr << "Error: ROSBOOT_DEBUG_TYPE is not set in configuration file"
<< endl;
- return false;
- }
- if (!conf_parser.getStringValue(RosBootTest::VARIABLE_NAME, m_BootCmd))
- {
- cerr << "Error: ROSBOOT_CMD is not set in configuration file" <<
endl;
- return false;
- }
-
- string timeout;
- if (conf_parser.getStringValue(RosBootTest::TIME_OUT, timeout))
- {
- TCHAR * stop;
- m_Timeout = _tcstod(timeout.c_str (), &stop);
-
- if (isnan(m_Timeout) || m_Timeout == 0.0)
- {
- cerr << "Warning: overriding timeout with default of 60 sec" <<
endl;
- m_Timeout = 60.0;
- }
- }
-
- string delayread;
- if (conf_parser.getStringValue(RosBootTest::DELAY_READ, delayread))
- {
- TCHAR * stop;
- m_Delayread = _tcstoul(delayread.c_str (), &stop, 10);
- if (m_Delayread > 60 || m_Delayread < 0)
- {
- cerr << "Warning: disabling delay read" << endl;
- m_Delayread = 0;
- }
- }
-
- ///
- /// read optional arguments
- ///
-
- conf_parser.getStringValue (RosBootTest::CHECK_POINT, m_Checkpoint);
- conf_parser.getStringValue (RosBootTest::CRITICAL_APP, m_CriticalApp);
- conf_parser.getStringValue (RosBootTest::DEBUG_FILE, m_DebugFile);
- conf_parser.getStringValue (RosBootTest::TERMINATE_EMULATOR, m_KillEmulator);
+ if (!conf_parser.getStringValue(RosBootTest::ROS_EMU_TYPE, m_EmuType))
+ {
+ cerr << "Error: ROS_EMU_TYPE is not set" << endl;
+ return false;
+ }
+
+ if (!conf_parser.getStringValue(RosBootTest::ROS_EMU_PATH, m_EmuPath))
+ {
+ cerr << "Error: ROS_EMU_PATH is not set" << endl;
+ return false;
+ }
+
+ conf_parser.getStringValue (RosBootTest::ROS_HDD_IMAGE, m_HDDImage);
+ conf_parser.getStringValue (RosBootTest::ROS_CD_IMAGE, m_CDImage);
+ conf_parser.getDoubleValue (RosBootTest::ROS_MAX_TIME, m_MaxTime);
+ conf_parser.getStringValue (RosBootTest::ROS_LOG_FILE, m_DebugFile);
+ conf_parser.getStringValue (RosBootTest::ROS_SYM_DIR, m_SymDir);
+ conf_parser.getIntValue (RosBootTest::ROS_DELAY_READ, m_DelayRead);
+ conf_parser.getStringValue (RosBootTest::ROS_SYSREG_CHECKPOINT, m_Checkpoint);
+ conf_parser.getStringValue (RosBootTest::ROS_CRITICAL_IMAGE, m_CriticalImage);
+ conf_parser.getStringValue (RosBootTest::ROS_EMU_KILL, m_KillEmulator);
+ conf_parser.getStringValue (RosBootTest::ROS_EMU_MEM, m_MaxMem);
return true;
}
//---------------------------------------------------------------------------------------
bool RosBootTest::execute(ConfigParser &conf_parser)
{
-
if (!readConfigurationValues(conf_parser))
{
return false;
}
-
- string src;
-
- if (m_DebugPort.find(_T("pipe")) != string::npos)
- {
- if (!configurePipe())
+
+ if (m_EmuType == EMU_TYPE_QEMU)
+ {
+ if (!configureQemu())
{
- cerr << "Error: failed to configure pipe" << endl;
+ cerr << "Error: failed to configure qemu" << endl;
return false;
}
-
-#ifndef __LINUX__
- if (!executeBootCmd())
+ }
+ else if (m_EmuType == EMU_TYPE_VMWARE)
+ {
+ if (!configureVmWare())
{
- cerr << "Error: failed to launch emulator" <<
endl;
+ cerr << "Error: failed to configure vmware" <<
endl;
return false;
}
-#endif
- src = m_Pipe;
- }
- else if (m_DebugPort.find(_T("file")) != string::npos)
- {
- if (!configureFile())
- {
- cerr << "Error: failed to configure pipe" << endl;
- return false;
- }
- if (!executeBootCmd())
- {
- cerr << "Error: failed to launch emulator" <<
endl;
- return false;
- }
-
- src = m_File;
- }
-
- if (!m_DataSource->openSource(src))
- {
- cerr << "Error: failed to open data source with " <<
src << endl;
- return false;
- }
+ }
+ else
+ {
+ ///
+ /// unsupported emulator
+
+ cerr << "Error: ROS_EMU_TYPE value is not supported:"
<< m_EmuType << "=" << EMU_TYPE_QEMU << endl;
+ return false;
+ }
+
+ OsSupport::sleep(500);
+
+ if (!m_DataSource->openSource(m_Src))
+ {
+ cerr << "Error: failed to open data source with " <<
m_Src << endl;
+ return false;
+ }
+
+ OsSupport::sleep(3000);
bool ret = analyzeDebugData();
@@ -314,10 +305,10 @@
cout << line << endl;
- if (line.find (RosBootTest::SYSREG_CHECKPOINT) != string::npos)
- {
- line.erase (0, line.find (RosBootTest::SYSREG_CHECKPOINT) +
- RosBootTest::SYSREG_CHECKPOINT.length ());
+ if (line.find (RosBootTest::ROS_SYSREG_CHECKPOINT) != string::npos)
+ {
+ line.erase (0, line.find (RosBootTest::ROS_SYSREG_CHECKPOINT) +
+ RosBootTest::ROS_SYSREG_CHECKPOINT.length ());
if (!_tcsncmp(line.c_str (), m_Checkpoint.c_str (), m_Checkpoint.length ()))
{
state = DebugStateCPReached;
@@ -357,7 +348,7 @@
}
else if (line.find (_T("Unhandled exception")) != string::npos)
{
- if (m_CriticalApp == _T("IGNORE"))
+ if (m_CriticalImage == _T("IGNORE"))
{
///
/// ignoring all user-mode exceptions
@@ -403,7 +394,7 @@
}
string appname = modulename.substr (pos + 1, modulename.length () - pos);
- if (m_CriticalApp.find (appname) == string::npos && m_CriticalApp.length ()
> 1)
+ if (m_CriticalImage.find (appname) == string::npos && m_CriticalImage.length
() > 1)
{
/// the application is not in the list of
/// critical apps. Therefore we ignore the user-mode
@@ -453,6 +444,11 @@
//---------------------------------------------------------------------------------------
bool RosBootTest::isTimeout(double max_timeout)
{
+ if (max_timeout == 0)
+ {
+ // no timeout specified
+ return false;
+ }
static time_t start = 0;
if (!start)
@@ -493,7 +489,7 @@
write_log = file.is_open ();
while(1)
{
- if (isTimeout(m_Timeout))
+ if (isTimeout(m_MaxTime))
{
break;
}
Modified: trunk/reactos/tools/sysreg/rosboot_test.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/sysreg/rosboot_test.…
==============================================================================
--- trunk/reactos/tools/sysreg/rosboot_test.h (original)
+++ trunk/reactos/tools/sysreg/rosboot_test.h Fri Jul 20 22:55:03 2007
@@ -11,6 +11,8 @@
*/
#include "data_source.h"
#include "conf_parser.h"
+#include "os_support.h"
+#include "user_types.h"
#include <vector>
#include <unistd.h>
@@ -19,6 +21,8 @@
{
using std::vector;
using System_::DataSource;
+ using System_::OsSupport;
+
//---------------------------------------------------------------------------------------
///
@@ -30,17 +34,22 @@
class RosBootTest
{
public:
- static string VARIABLE_NAME;
- static string CLASS_NAME;
- static string DEBUG_PORT;
- static string DEBUG_FILE;
- static string TIME_OUT;
- static string PID_FILE;
- static string CHECK_POINT;
- static string SYSREG_CHECKPOINT;
- static string DELAY_READ;
- static string CRITICAL_APP;
- static string TERMINATE_EMULATOR;
+
+ static string ROS_EMU_TYPE;
+ static string EMU_TYPE_QEMU;
+ static string EMU_TYPE_VMWARE;
+ static string ROS_EMU_PATH;
+ static string ROS_HDD_IMAGE;
+ static string ROS_CD_IMAGE;
+ static string ROS_MAX_TIME;
+ static string ROS_LOG_FILE;
+ static string ROS_SYM_DIR;
+ static string ROS_DELAY_READ;
+ static string ROS_SYSREG_CHECKPOINT;
+ static string ROS_CRITICAL_IMAGE;
+ static string ROS_EMU_KILL;
+ static string ROS_EMU_MEM;
+
//---------------------------------------------------------------------------------------
///
@@ -81,7 +90,8 @@
bool configureFile();
bool analyzeDebugData();
bool readConfigurationValues(ConfigParser & conf_parser);
-
+ bool configureQemu();
+ bool configureVmWare();
//---------------------------------------------------------------------------------------
///
@@ -122,22 +132,26 @@
protected:
- double m_Timeout;
- string m_Checkpoint;
- string m_CriticalApp;
- string m_DebugFile;
- string m_BootCmd;
- string m_DebugPort;
- string m_Pipe;
- string m_File;
- string m_KillEmulator;
- DataSource * m_DataSource;
- vector <string> m_Checkpoints;
- unsigned long m_Delayread;
- long m_Pid;
- long m_DelayRead;
+ string m_EmuType;
+ string m_EmuPath;
+ string m_HDDImage;
+ string m_CDImage;
+ double m_MaxTime;
+ string m_DebugFile;
+ string m_SymDir;
+ long int m_DelayRead;
+ string m_Checkpoint;
+ string m_CriticalImage;
+ string m_KillEmulator;
+ string m_MaxMem;
+ string m_BootCmd;
+ string m_Src;
- }; // end of class RosBootTest
+ DataSource * m_DataSource;
+ OsSupport::ProcessID m_Pid;
+ std::vector<string> m_Checkpoints;
+
+ }; // end of class RosBootTest
} // end of namespace Sysreg_
Modified: trunk/reactos/tools/sysreg/txtmode.cfg
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/sysreg/txtmode.cfg?r…
==============================================================================
--- trunk/reactos/tools/sysreg/txtmode.cfg (original)
+++ trunk/reactos/tools/sysreg/txtmode.cfg Fri Jul 20 22:55:03 2007
@@ -14,13 +14,13 @@
ROS_EMU_PATH=E:\reactos\qemu\qemu.exe
-; ROS_HD_IMAGE
+; ROS_HDD_IMAGE
;
; The hdd image to use for running the emulator. If this variable is not
; set, SysReg will create a HDD with name "ros.img" using the qemu-img tool. It
will search
; this tool in the directory of emulator and abort if the tool cannot be found
-ROS_HD_IMAGE=E:\reactos\qemu\RosVMDK.img
+ROS_HDD_IMAGE=E:\reactos\qemu\ReactOS.hd
; ROS_CD_IMAGE
;
@@ -29,7 +29,7 @@
; from harddisk.
;
-ROS_CD_IMAGE=E:\reactos\qemu\Reactos-RegTest.iso
+ROS_CD_IMAGE=E:\reactos\qemu\Reactos.iso
;-------------------------------------------------------------------------------------------
; Additional Options
@@ -62,7 +62,7 @@
;
; Note: set this value if you have problems with timeouts or cutoff debugging data
;
-; ROS_DELAY_READ=4
+ROS_DELAY_READ=4000
; ROS_CHECK_POINT
;
@@ -77,3 +77,19 @@
; that the test has failed and quit debugging immediately
;
;ROS_CRITICAL_IMAGE=setup.exe userinit.exe smss.exe winlogon.exe csrss.exe explorer.exe
+
+; ROS_EMU_KILL
+;
+; Set this variable to true if you want SysReg to kill the emulator process when it has
decided to exit.
+;
+; Note: Qemu>=0.9.0 has the option to shutdown on reboot (-no--reboot)
+;
+; ROS_EMU_KILL=yes
+
+; ROS_EMU_MEM
+;
+; Controls how much memory the emulator use for ReactOS
+;
+; ROS_EMU_MEM=64
+
+