Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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();
        }
Exemplo n.º 5
0
 protected abstract void OnRunConfigurationEnd(RunConfiguration configuration);
Exemplo n.º 6
0
 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()));
 }
Exemplo n.º 7
0
 protected abstract void OnRunConfigurationStart(RunConfiguration configuration);
Exemplo n.º 8
0
 public abstract void RunConfigurationEnd(RunConfiguration configuration);
Exemplo n.º 9
0
 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();
 }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
 public override void RunConfigurationEnd(RunConfiguration configuration)
 {
     RunOnTargets(t => t.RunConfigurationEnd(configuration));
 }
Exemplo n.º 12
0
 public override void RunConfigurationStart(RunConfiguration configuration)
 {
 }
Exemplo n.º 13
0
 protected override void OnRunConfigurationStart(RunConfiguration configuration)
 {
     Log(string.Format("Start configuration. IsELF = {0}, Target = {1}", configuration.IsELF, configuration.RunTarget));
     mLogLevel++;
 }
Exemplo n.º 14
0
 protected abstract void OnRunConfigurationEnd(RunConfiguration configuration);
Exemplo n.º 15
0
 public override void RunConfigurationStart(RunConfiguration configuration)
 {
     RunLocked(() => OnRunConfigurationStart(configuration));
 }
Exemplo n.º 16
0
 protected abstract void OnRunConfigurationStart(RunConfiguration configuration);
Exemplo n.º 17
0
 public override void RunConfigurationEnd(RunConfiguration configuration)
 {
     mLogLevel--;
 }
Exemplo n.º 18
0
 public override void RunConfigurationStart(RunConfiguration configuration)
 {
     Log(string.Format("Start configuration. IsELF = {0}, Target = {1}", configuration.IsELF, configuration.RunTarget));
     mLogLevel++;
 }
Exemplo n.º 19
0
 public override void RunConfigurationStart(RunConfiguration configuration)
 {
     RunLocked(() => OnRunConfigurationStart(configuration));
 }
Exemplo n.º 20
0
 public override void RunConfigurationStart(RunConfiguration configuration)
 {
     Log(string.Format("Start configuration. IsELF = {0}", configuration.IsELF));
     mLogLevel++;
 }
Exemplo n.º 21
0
 public override void RunConfigurationEnd(RunConfiguration configuration)
 {
     mLogLevel --;
 }
Exemplo n.º 22
0
 public abstract void RunConfigurationStart(RunConfiguration configuration);
Exemplo n.º 23
0
 public override void RunConfigurationEnd(RunConfiguration configuration)
 {
 }
Exemplo n.º 24
0
 protected override void OnRunConfigurationEnd(RunConfiguration configuration)
 {
     mLogLevel--;
 }
Exemplo n.º 25
0
 protected override void OnRunConfigurationEnd(RunConfiguration configuration)
 {
     mLogLevel --;
 }
 public override void RunConfigurationEnd(RunConfiguration configuration)
 {
     RunOnTargets(t => t.RunConfigurationEnd(configuration));
 }