simple console support through pts devices

This commit is contained in:
Martin Willi
2007-08-28 07:53:46 +00:00
parent 12fe0e60df
commit 69e56d9dec
5 changed files with 147 additions and 28 deletions
+25 -3
View File
@@ -57,7 +57,10 @@ static char* get_line(char *format, ...)
line = readline(prompt);
if (line == NULL)
{
continue;
printf("quit\n");
dumm->destroy(dumm);
clear_history();
exit(0);
}
if (*line == '\0')
{
@@ -190,6 +193,21 @@ static void guest_delif_menu(guest_t *guest)
free(name);
}
static void guest_console(guest_t *guest)
{
int con;
for (con = 1; con <= 6; con++)
{
char *pts = guest->get_console(guest, con);
if (pts)
{
printf("%d: %s\n", con, pts);
free(pts);
}
}
}
static void guest_menu(guest_t *guest)
{
while (TRUE)
@@ -205,7 +223,7 @@ static void guest_menu(guest_t *guest)
{
if (guest->start(guest))
{
printf("guest '%s' is booting\n", guest->get_name(guest));
printf("guest '%s' is running\n", guest->get_name(guest));
}
else
{
@@ -226,9 +244,13 @@ static void guest_menu(guest_t *guest)
{
guest_delif_menu(guest);
}
else if (streq(line, "console"))
{
guest_console(guest);
}
else
{
printf("back|start|stop|addif|delif\n");
printf("back|start|stop|addif|delif|console\n");
}
free(line);
}