Ejemplo n.º 1
0
 private static CommandResult RunQemu(CommandArgs args)
 {
     Env.Set("DEBUG_INTERRUPTS", ",int");
     switch (args.RequireFlag("boot", "direct"))
     {
     case "direct":
         Exec("${qemu} -kernel ${ABANU_OSDIR}/Abanu.OS.image.${ABANU_ARCH}.bin -serial file:${ABANU_LOGDIR}/kernel.log -d pcall,cpu_reset,guest_errors${DEBUG_INTERRUPTS} -D ${ABANU_LOGDIR}/emulator.log -m 256");
         break;
     }
     return(null);
 }
Ejemplo n.º 2
0
 private static CommandResult DebugQemu(CommandArgs args)
 {
     Env.Set("DEBUG_INTERRUPTS", ",int");
     switch (args.RequireFlag("boot", "direct"))
     {
     case "direct":
         using (var qemu = ExecAsync("${qemu} -kernel ${ABANU_OSDIR}/Abanu.OS.image.${ABANU_ARCH}.bin -serial file:${ABANU_LOGDIR}/kernel.log -d pcall,cpu_reset,guest_errors${DEBUG_INTERRUPTS} -D ${ABANU_LOGDIR}/emulator.log -s -S -m 256"))
         {
             Thread.Sleep(500);
             using (var gdb = ExecAsync("${gdb}", false))
             {
                 gdb.WaitForExit();
                 break;
             }
         }
     }
     return(null);
 }
Ejemplo n.º 3
0
        private static CommandResult RunQemu(CommandArgs args)
        {
            Env.Set("DEBUG_INTERRUPTS", ",int");
            switch (args.RequireFlag("boot", "direct"))
            {
            case "direct":
                if (args.ContainsFlag("test"))
                {
                    var success = false;

                    Exec(
                        "${qemu} -kernel ${ABANU_OSDIR}/Abanu.OS.Image.${ABANU_ARCH}.bin -serial stdio -m 256 -display none",
                        (line, proc) =>
                    {
                        if (line.Contains(KConfig.SelfTestPassedMarker))
                        {
                            success = true;
                            proc.Kill();
                            Console.WriteLine("TEST PASSED");
                            Environment.Exit(0);
                        }
                    }, TimeSpan.FromSeconds(60));

                    if (success)
                    {
                        Environment.Exit(0);
                    }
                    else
                    {
                        Console.WriteLine("Test FAILED");
                        Environment.Exit(1);
                    }
                }
                else
                {
                    Exec("${qemu} -kernel ${ABANU_OSDIR}/Abanu.OS.Image.${ABANU_ARCH}.bin -serial file:${ABANU_LOGDIR}/kernel.log -d pcall,cpu_reset,guest_errors${DEBUG_INTERRUPTS} -D ${ABANU_LOGDIR}/emulator.log -m 256");
                }
                break;
            }
            return(null);
        }