FreeCalypso > hg > freecalypso-tools
diff rvinterf/asyncshell/poweroff.c @ 0:e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 11 Jun 2016 00:13:35 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rvinterf/asyncshell/poweroff.c Sat Jun 11 00:13:35 2016 +0000 @@ -0,0 +1,44 @@ +/* + * fc-shell poweroff and tgtreset commands + */ + +#include <sys/types.h> +#include <stdio.h> +#include <stdlib.h> +#include "pktmux.h" +#include "etm.h" + +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); + return 0; +} + +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 */ + return send_etm_cmd(cmdpkt, 5); +} + +cmd_tgtreset() +{ + u_char cmdpkt[4]; + + cmdpkt[1] = ETM_CORE; + cmdpkt[2] = TMCORE_OPC_RESET; + return send_etm_cmd(cmdpkt, 2); +}