private void ExecuteKernel(string assemblyFileName, RunConfiguration configuration) { OutputHandler.ExecuteKernelStart(assemblyFileName); try { var xAssemblyFile = Path.Combine(mBaseWorkingDirectory, "Kernel.asm"); var xObjectFile = Path.Combine(mBaseWorkingDirectory, "Kernel.obj"); var xTempObjectFile = Path.Combine(mBaseWorkingDirectory, "Kernel.o"); var xIsoFile = Path.Combine(mBaseWorkingDirectory, "Kernel.iso"); RunTask("IL2CPU", () => RunIL2CPU(assemblyFileName, xAssemblyFile)); RunTask("Nasm", () => RunNasm(xAssemblyFile, xObjectFile, configuration.IsELF)); if (configuration.IsELF) { File.Move(xObjectFile, xTempObjectFile); RunTask("Ld", () => RunLd(xTempObjectFile, xObjectFile)); } RunTask("MakeISO", () => MakeIso(xObjectFile, xIsoFile)); RunTask("RunISOInBochs", () => RunIsoInBochs(xIsoFile)); } catch (Exception e) { OutputHandler.UnhandledException(e); } finally { OutputHandler.ExecuteKernelEnd(assemblyFileName); } }
private bool ExecuteKernel(string assemblyFileName, RunConfiguration configuration) { var xResult = true; OutputHandler.ExecuteKernelStart(assemblyFileName); try { var xAssemblyFile = Path.Combine(mBaseWorkingDirectory, "Kernel.asm"); var xObjectFile = Path.Combine(mBaseWorkingDirectory, "Kernel.obj"); var xTempObjectFile = Path.Combine(mBaseWorkingDirectory, "Kernel.o"); var xIsoFile = Path.Combine(mBaseWorkingDirectory, "Kernel.iso"); RunTask("IL2CPU", () => RunIL2CPU(assemblyFileName, xAssemblyFile)); RunTask("Nasm", () => RunNasm(xAssemblyFile, xObjectFile, configuration.IsELF)); if (configuration.IsELF) { File.Move(xObjectFile, xTempObjectFile); RunTask("Ld", () => RunLd(xTempObjectFile, xObjectFile)); RunTask("ExtractMapFromElfFile", () => RunExtractMapFromElfFile(mBaseWorkingDirectory, xObjectFile)); } var xHarddiskPath = Path.Combine(mBaseWorkingDirectory, "Harddisk.vmdk"); var xOriginalHarddiskPath = Path.Combine(GetCosmosUserkitFolder(), "Build", "VMware", "Workstation", "Filesystem.vmdk"); File.Copy(xOriginalHarddiskPath, xHarddiskPath); RunTask("MakeISO", () => MakeIso(xObjectFile, xIsoFile)); switch (configuration.RunTarget) { case RunTargetEnum.Bochs: RunTask("RunISO", () => RunIsoInBochs(xIsoFile, xHarddiskPath)); break; case RunTargetEnum.VMware: RunTask("RunISO", () => RunIsoInVMware(xIsoFile, xHarddiskPath)); break; default: throw new ArgumentOutOfRangeException("RunTarget " + configuration.RunTarget + " not implemented!"); } } catch (Exception e) { if (!mKernelResultSet) { OutputHandler.SetKernelTestResult(false, e.ToString()); mKernelResult = false; } if (e is TaskFailedException) { return mKernelResult; } OutputHandler.UnhandledException(e); } finally { OutputHandler.ExecuteKernelEnd(assemblyFileName); } xResult = mKernelResult; return xResult; }
private void ExecuteKernel(string assemblyFileName, RunConfiguration configuration) { OutputHandler.ExecuteKernelStart(assemblyFileName); try { var xAssemblyFile = Path.Combine(mBaseWorkingDirectory, "Kernel.asm"); var xObjectFile = Path.Combine(mBaseWorkingDirectory, "Kernel.obj"); var xTempObjectFile = Path.Combine(mBaseWorkingDirectory, "Kernel.o"); var xIsoFile = Path.Combine(mBaseWorkingDirectory, "Kernel.iso"); RunTask("IL2CPU", () => RunIL2CPU(assemblyFileName, xAssemblyFile)); RunTask("Nasm", () => RunNasm(xAssemblyFile, xObjectFile, configuration.IsELF)); if (configuration.IsELF) { File.Move(xObjectFile, xTempObjectFile); RunTask("Ld", () => RunLd(xTempObjectFile, xObjectFile)); RunTask("ExtractMapFromElfFile", () => RunExtractMapFromElfFile(mBaseWorkingDirectory, xObjectFile)); } RunTask("MakeISO", () => MakeIso(xObjectFile, xIsoFile)); switch (configuration.RunTarget) { case RunTargetEnum.Bochs: RunTask("RunISO", () => RunIsoInBochs(xIsoFile)); break; case RunTargetEnum.VMware: RunTask("RunISO", () => RunIsoInVMware(xIsoFile)); break; default: throw new ArgumentOutOfRangeException("RunTarget " + configuration.RunTarget + " not implemented!"); } } catch (Exception e) { if (!mKernelResultSet) { OutputHandler.SetKernelTestResult(false, e.ToString()); } if (e is TaskFailedException) { return; } OutputHandler.UnhandledException(e); } finally { OutputHandler.ExecuteKernelEnd(assemblyFileName); } }
protected override void OnRunConfigurationStart(RunConfiguration configuration) { XmlElement xParent = mDocument.DocumentElement; if (mCurrentNode.Count > 0) { xParent = mCurrentNode.Peek(); } var xItem = mDocument.CreateElement("Configuration"); xItem.Attributes.Append(NewXmlAttribute("IsELF", configuration.IsELF.ToString())); xItem.Attributes.Append(NewXmlAttribute("RunTarget", configuration.RunTarget.ToString())); xParent.AppendChild(xItem); mCurrentNode.Push(xItem); mConfigurationSucceeded = true; mConfigurationStopwatch = Stopwatch.StartNew(); }
protected abstract void OnRunConfigurationEnd(RunConfiguration configuration);
protected override void OnRunConfigurationEnd(RunConfiguration configuration) { mConfigurationStopwatch.Stop(); var xItem = mCurrentNode.Pop(); xItem.Attributes.Append(NewXmlAttribute("Duration", mKernelStopwatch.Elapsed.ToString("c"))); xItem.Attributes.Append(NewXmlAttribute("Succeeded", mConfigurationSucceeded.ToString())); }
protected abstract void OnRunConfigurationStart(RunConfiguration configuration);
public abstract void RunConfigurationEnd(RunConfiguration configuration);
protected override void OnRunConfigurationStart(RunConfiguration configuration) { var xParent = mCurrentNode.Peek(); var xItem = mDocument.CreateElement("Configuration"); xItem.Attributes.Append(NewXmlAttribute("IsELF", configuration.IsELF.ToString())); xItem.Attributes.Append(NewXmlAttribute("RunTarget", configuration.RunTarget.ToString())); xParent.AppendChild(xItem); mCurrentNode.Push(xItem); mConfigurationSucceeded = true; mConfigurationStopwatch = Stopwatch.StartNew(); }
private bool ExecuteKernel(string assemblyFileName, RunConfiguration configuration) { var xResult = true; OutputHandler.ExecuteKernelStart(assemblyFileName); try { var xAssemblyFile = Path.Combine(mBaseWorkingDirectory, "Kernel.asm"); var xObjectFile = Path.Combine(mBaseWorkingDirectory, "Kernel.obj"); var xTempObjectFile = Path.Combine(mBaseWorkingDirectory, "Kernel.o"); var xIsoFile = Path.Combine(mBaseWorkingDirectory, "Kernel.iso"); if (KernelPkg == "X86") { RunTask("TheRingMaster", () => RunTheRingMaster(assemblyFileName)); } RunTask("IL2CPU", () => RunIL2CPU(assemblyFileName, xAssemblyFile)); RunTask("Nasm", () => RunNasm(xAssemblyFile, xObjectFile, configuration.IsELF)); if (configuration.IsELF) { File.Move(xObjectFile, xTempObjectFile); RunTask("Ld", () => RunLd(xTempObjectFile, xObjectFile)); RunTask("ExtractMapFromElfFile", () => RunExtractMapFromElfFile(mBaseWorkingDirectory, xObjectFile)); } string xHarddiskPath; if (configuration.RunTarget == RunTargetEnum.HyperV) { xHarddiskPath = Path.Combine(mBaseWorkingDirectory, "Harddisk.vhdx"); var xOriginalHarddiskPath = Path.Combine(GetCosmosUserkitFolder(), "Build", "HyperV", "Filesystem.vhdx"); File.Copy(xOriginalHarddiskPath, xHarddiskPath); } else { xHarddiskPath = Path.Combine(mBaseWorkingDirectory, "Harddisk.vmdk"); var xOriginalHarddiskPath = Path.Combine(GetCosmosUserkitFolder(), "Build", "VMware", "Workstation", "Filesystem.vmdk"); File.Copy(xOriginalHarddiskPath, xHarddiskPath); } RunTask("MakeISO", () => MakeIso(xObjectFile, xIsoFile)); switch (configuration.RunTarget) { case RunTargetEnum.Bochs: RunTask("RunISO", () => RunIsoInBochs(xIsoFile, xHarddiskPath)); break; case RunTargetEnum.VMware: RunTask("RunISO", () => RunIsoInVMware(xIsoFile, xHarddiskPath)); break; case RunTargetEnum.HyperV: RunTask("RunISO", () => RunIsoInHyperV(xIsoFile, xHarddiskPath)); break; default: throw new ArgumentOutOfRangeException("RunTarget " + configuration.RunTarget + " not implemented!"); } } catch (Exception e) { if (!mKernelResultSet) { OutputHandler.SetKernelTestResult(false, e.ToString()); mKernelResult = false; } if (e is TaskFailedException) { return(mKernelResult); } OutputHandler.UnhandledException(e); } finally { OutputHandler.ExecuteKernelEnd(assemblyFileName); } xResult = mKernelResult; return(xResult); }
public override void RunConfigurationEnd(RunConfiguration configuration) { RunOnTargets(t => t.RunConfigurationEnd(configuration)); }
public override void RunConfigurationStart(RunConfiguration configuration) { }
protected override void OnRunConfigurationStart(RunConfiguration configuration) { Log(string.Format("Start configuration. IsELF = {0}, Target = {1}", configuration.IsELF, configuration.RunTarget)); mLogLevel++; }
public override void RunConfigurationStart(RunConfiguration configuration) { RunLocked(() => OnRunConfigurationStart(configuration)); }
public override void RunConfigurationEnd(RunConfiguration configuration) { mLogLevel--; }
public override void RunConfigurationStart(RunConfiguration configuration) { Log(string.Format("Start configuration. IsELF = {0}, Target = {1}", configuration.IsELF, configuration.RunTarget)); mLogLevel++; }
public override void RunConfigurationStart(RunConfiguration configuration) { Log(string.Format("Start configuration. IsELF = {0}", configuration.IsELF)); mLogLevel++; }
public override void RunConfigurationEnd(RunConfiguration configuration) { mLogLevel --; }
public abstract void RunConfigurationStart(RunConfiguration configuration);
public override void RunConfigurationEnd(RunConfiguration configuration) { }
protected override void OnRunConfigurationEnd(RunConfiguration configuration) { mLogLevel--; }
protected override void OnRunConfigurationEnd(RunConfiguration configuration) { mLogLevel --; }