FreeCalypso > hg > freecalypso-sw
view loadtools/ltexit.c @ 27:ae6294b8a015
loadtool: exit jump0 implemented
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Sat, 04 May 2013 06:22:09 +0000 |
parents | |
children | 768a3d012931 |
line wrap: on
line source
/* * This module implements the loadtool exit command, along with its * options for jump-reboot or eventual Iota power-off. */ #include <stdio.h> #include <string.h> #include <strings.h> #include <stdlib.h> static void exit_bare() { exit(0); } static void exit_jump0() { static char *jump0_argv[3] = {"jump", "0", 0}; tpinterf_make_cmd(jump0_argv); tpinterf_send_cmd(); exit(0); } void (*default_exit)() = exit_bare; static struct kwtab { char *kw; void (*func)(); } exit_modes[] = { {"bare", exit_bare}, {"jump0", exit_jump0}, {0, 0} }; cmd_exit(argc, argv) char **argv; { struct kwtab *tp; if (argc < 2) default_exit(); for (tp = exit_modes; tp->kw; tp++) if (!strcmp(tp->kw, argv[1])) break; if (!tp->func) { fprintf(stderr, "error: \"%s\" is not an understood exit mode\n", argv[1]); return(-1); } tp->func(); }