FreeCalypso > hg > fc-sim-tools
diff libcommon/atr.c @ 9:c9ef9e91dd8e
new libcommon, initial version
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 14 Mar 2021 06:55:38 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libcommon/atr.c Sun Mar 14 06:55:38 2021 +0000 @@ -0,0 +1,40 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <strings.h> + +extern FILE *cpipeF, *rpipeF; +extern char be_atr_string[]; + +cmd_atr() +{ + char inbuf[128], *cp; + + /* do we have it already? */ + if (be_atr_string[0]) { + printf("ATR: %s\n", be_atr_string); + return(0); + } + /* nope - request it from the BE */ + fputs("atr\n", cpipeF); + fflush(cpipeF); + /* collect BE response */ + if (!fgets(inbuf, sizeof inbuf, rpipeF)) { + fprintf(stderr, "comm error: EOF reading from back end\n"); + return(-1); + } + cp = index(inbuf, '\n'); + if (!cp) { + fprintf(stderr, + "comm error: response from back end has no newline\n"); + return(-1); + } + *cp = '\0'; + if (!inbuf[0]) { + fprintf(stderr, + "comm error: response from back end is an empty line\n"); + return(-1); + } + puts(inbuf); + return(0); +}