view rvinterf/etm/etmbasic.c @ 183:85222710dc92

rvinterf/etm: implemented everything except the packet sending command
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Sun, 24 Nov 2013 08:03:27 +0000
parents
children 4714fdfca39c
line wrap: on
line source

/*
 * Basic ETM interaction
 */

#include <sys/types.h>
#include <stdio.h>
#include <string.h>
#include <strings.h>
#include <stdlib.h>
#include "../limits.h"

extern u_char rvi_msg[];
extern int rvi_msg_len;

void
etm_packet_rx()
{
	char buf[MAX_PKT_FROM_TARGET*3+80], *dp;
	int i, c;

	if (rvi_msg_len < 4) {
		async_msg_output("!!! Short ETM Rx packet !!!");
		return;
	}
	strcpy(buf, "Pkt from ETM:");
	dp = index(buf, '\0');
	c = 0;
	for (i = 2; i < rvi_msg_len; i++) {
		sprintf(dp, " %02X", rvi_msg[i]);
		dp += 3;
		c ^= rvi_msg[i];
	}
	sprintf(dp, " chksum %s", c ? "BAD" : "OK");
	async_msg_output(buf);
}