FreeCalypso > hg > fc-sim-tools
diff libcommon/exit.c @ 9:c9ef9e91dd8e
new libcommon, initial version
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 14 Mar 2021 06:55:38 +0000 |
parents | |
children | 812779459ddd |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libcommon/exit.c Sun Mar 14 06:55:38 2021 +0000 @@ -0,0 +1,38 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <strings.h> + +extern unsigned calypso_fd; +extern FILE *cpipeF; + +good_exit() +{ + if (calypso_fd) { + fputs("poweroff\n", cpipeF); + fflush(cpipeF); + } + exit(0); +} + +cmd_exit(argc, argv) + char **argv; +{ + if (argc < 2) + good_exit(); + if (!calypso_fd) { + fprintf(stderr, + "error: exit arguments are only meaningful with Calypso back end\n"); + return(-1); + } + if (!strcmp(argv[1], "bare")) + exit(0); + if (!strcmp(argv[1], "iota-off")) { + fputs("poweroff\n", cpipeF); + fflush(cpipeF); + exit(0); + } + fprintf(stderr, "error: \"%s\" is not an understood exit mode\n", + argv[1]); + return(-1); +}