changeset 649:141372e0d28f

fc-loadtool module refactoring: tpinterfb.c split out
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 02 Mar 2020 02:45:35 +0000
parents 3229940734e5
children bf840c984113
files loadtools/Makefile loadtools/ltdump.c loadtools/tpinterfb.c
diffstat 3 files changed, 53 insertions(+), 42 deletions(-) [+]
line wrap: on
line diff
--- a/loadtools/Makefile	Mon Mar 02 02:32:18 2020 +0000
+++ b/loadtools/Makefile	Mon Mar 02 02:45:35 2020 +0000
@@ -19,7 +19,7 @@
 		flprogsrec.o flutil.o hexdecode.o hwparam.o labaud.o lacrc32.o \
 		ltdispatch.o ltdump.o ltexit.o lthelp.o ltmain.o ltmisc.o \
 		ltpassthru.o ltscript.o romload.o srecreader.o tpinterf.o \
-		tpinterf2.o tpinterf3.o
+		tpinterf2.o tpinterf3.o tpinterfb.o
 
 XRAM_OBJS=	chainload.o clmain.o compalload.o defexitstub.o defpath.o \
 		flashstubs.o hexdecode.o hwparam.o initscript.o labaud.o \
--- a/loadtools/ltdump.c	Mon Mar 02 02:32:18 2020 +0000
+++ b/loadtools/ltdump.c	Mon Mar 02 02:45:35 2020 +0000
@@ -4,8 +4,6 @@
  */
 
 #include <sys/types.h>
-#include <sys/time.h>
-#include <sys/errno.h>
 #include <stdio.h>
 #include <stdint.h>
 #include <string.h>
@@ -13,50 +11,11 @@
 #include <stdlib.h>
 #include <time.h>
 
-extern int errno;
-
-extern int target_fd;
 extern uint32_t crc32_table[];
 
 static char dumpsrec_s0_line[] = "S007000044554D50C2\n";
 static char dumpsrec_s7_line[] = "S70500000000FA\n";
 
-collect_binblock_from_target(buf, expect_len, timeout)
-	u_char *buf;
-	unsigned expect_len;
-{
-	fd_set fds;
-	struct timeval tv;
-	unsigned rcvd;
-	int cc;
-
-	for (rcvd = 0; rcvd < expect_len; ) {
-		FD_ZERO(&fds);
-		FD_SET(target_fd, &fds);
-		tv.tv_sec = timeout;
-		tv.tv_usec = 0;
-		cc = select(target_fd+1, &fds, NULL, NULL, &tv);
-		if (cc < 0) {
-			if (errno == EINTR)
-				continue;
-			perror("select");
-			return(-1);
-		}
-		if (cc < 1) {
-			fprintf(stderr,
-				"error: timeout waiting for binary block\n");
-			return(-1);
-		}
-		cc = read(target_fd, buf + rcvd, expect_len - rcvd);
-		if (cc <= 0) {
-			perror("read after successful select");
-			return(-1);
-		}
-		rcvd += cc;
-	}
-	return(0);
-}
-
 write_block_in_srec(buf, addr, blklen, outfile)
 	u_char *buf;
 	uint32_t addr;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/loadtools/tpinterfb.c	Mon Mar 02 02:45:35 2020 +0000
@@ -0,0 +1,52 @@
+/*
+ * This module contains functions for binary (as opposed to our usual ASCII)
+ * interfacing to loadagent.
+ */
+
+#include <sys/types.h>
+#include <sys/time.h>
+#include <sys/errno.h>
+#include <stdio.h>
+#include <string.h>
+#include <strings.h>
+#include <stdlib.h>
+
+extern int errno;
+
+extern int target_fd;
+
+collect_binblock_from_target(buf, expect_len, timeout)
+	u_char *buf;
+	unsigned expect_len;
+{
+	fd_set fds;
+	struct timeval tv;
+	unsigned rcvd;
+	int cc;
+
+	for (rcvd = 0; rcvd < expect_len; ) {
+		FD_ZERO(&fds);
+		FD_SET(target_fd, &fds);
+		tv.tv_sec = timeout;
+		tv.tv_usec = 0;
+		cc = select(target_fd+1, &fds, NULL, NULL, &tv);
+		if (cc < 0) {
+			if (errno == EINTR)
+				continue;
+			perror("select");
+			return(-1);
+		}
+		if (cc < 1) {
+			fprintf(stderr,
+				"error: timeout waiting for binary block\n");
+			return(-1);
+		}
+		cc = read(target_fd, buf + rcvd, expect_len - rcvd);
+		if (cc <= 0) {
+			perror("read after successful select");
+			return(-1);
+		}
+		rcvd += cc;
+	}
+	return(0);
+}