FreeCalypso > hg > freecalypso-sw
diff rvinterf/asyncshell/poweroff.c @ 889:1b1683cda154
fc-shell: implemented poweroff and tgtreset commands
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Sun, 28 Jun 2015 16:52:06 +0000 |
parents | |
children | bd873572ef2c |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rvinterf/asyncshell/poweroff.c Sun Jun 28 16:52:06 2015 +0000 @@ -0,0 +1,46 @@ +/* + * fc-shell poweroff and tgtreset commands + */ + +#include <sys/types.h> +#include <stdio.h> +#include <stdlib.h> +#include "pktmux.h" +#include "etm.h" + +void +send_etm_cmd(buf, len) + u_char *buf; +{ + int i, c; + + buf[0] = RVT_TM_HEADER; + c = 0; + for (i = 1; i <= len; i++) + c ^= buf[i]; + buf[i] = c; + send_pkt_to_target(buf, len + 2); +} + +void +cmd_poweroff() +{ + u_char cmdpkt[7]; + + cmdpkt[1] = ETM_CORE; + cmdpkt[2] = TMCORE_OPC_CODEC_WR; + cmdpkt[3] = 30; /* VRPCDEV */ + cmdpkt[4] = 0x01; /* low 8 bits */ + cmdpkt[5] = 0; /* high 2 bits */ + send_etm_cmd(cmdpkt, 5); +} + +void +cmd_tgtreset() +{ + u_char cmdpkt[4]; + + cmdpkt[1] = ETM_CORE; + cmdpkt[2] = TMCORE_OPC_RESET; + send_etm_cmd(cmdpkt, 2); +}