view rvinterf/old/g23sh/sendsp.c @ 752:c79aaed75bd8

compile-fc-batt: allow possible third field in source lines Battery tables maintained in the fc-battery-conf repository will now have a third field added, defining thresholds for the battery bars icon, and there will be a new utility to compile them into the new /etc/batterytab2 file read by the FC Tourmaline version of our FCHG driver. For backward compatibility with the original Magnetite version of FCHG, compile-fc-batt remains the tool for compiling the original /etc/batterytab file format, and it needs to ignore the newly added third field in battery table sources.
author Mychaela Falconia <falcon@freecalypso.org>
date Thu, 05 Nov 2020 20:37:55 +0000
parents e7502631a0f9
children
line wrap: on
line source

/*
 * g23sh system primitive sending command
 */

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

void
cmd_sendsp(argc, argv)
	char **argv;
{
	char *stackdest, *primarg;
	unsigned intlen;
	u_char sendpkt[MAX_PKT_TO_TARGET+1];
	unsigned pktlen;

	stackdest = argv[1];
	primarg = argv[2];
	if (strlen(stackdest) > 4) {
		printf(
		  "error: stack destination arg may not exceed 4 characters\n");
		return;
	}
	intlen = 12 + strlen(primarg);
	pktlen = intlen + 4;
	if (pktlen > MAX_PKT_TO_TARGET) {
		printf("error: max pkt to target limit exceeded\n");
		return;
	}
	/* fill out the packet */
	sendpkt[0] = RVT_L23_HEADER;
	sendpkt[1] = 0xB7;	/* system prim */
	sendpkt[2] = intlen;
	sendpkt[3] = intlen >> 8;
	/* send zeros for the timestamp */
	sendpkt[4] = 0;
	sendpkt[5] = 0;
	sendpkt[6] = 0;
	sendpkt[7] = 0;
	/* as far as TI's sw is concerned, we are PCO */
	sendpkt[8] = 'P';
	sendpkt[9] = 'C';
	sendpkt[10] = 'O';
	sendpkt[11] = ' ';
	sprintf(sendpkt + 12, "%-4s%s", stackdest, primarg);
	/* send it! */
	send_pkt_to_target(sendpkt, pktlen);
}