Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'libgloss/hp74x/checksum.c')
-rw-r--r--libgloss/hp74x/checksum.c150
1 files changed, 0 insertions, 150 deletions
diff --git a/libgloss/hp74x/checksum.c b/libgloss/hp74x/checksum.c
deleted file mode 100644
index 4a2b331fe..000000000
--- a/libgloss/hp74x/checksum.c
+++ /dev/null
@@ -1,150 +0,0 @@
-#include <stdio.h>
-#include <fcntl.h>
-
-#define USAGE "USAGE: checkum -[vhcs] infile outfile\n\t-v\tverbose\n\
-\t-h\thelp\n\t-c\tcheck checksum\n\t-s\tprint the ipl size"
-static int verbose = 0;
-static int verify = 0;
-static int size = 0;
-
-typedef int word_t;
-#define WORDSIZE (sizeof(word_t))
-
-main(argc, argv)
- int argc;
- char **argv;
-{
- char *infile;
- char *outfile;
- int infd;
- int outfd;
- word_t checksum = 0;
- int nbytes;
- word_t buf;
- int i = 1;
- int filesize = 0;
-
- while (*argv[i] == '-') {
- switch (*(argv[i]+1)) {
- case 'v':
- verbose++;
- break;
- case 'c':
- verify++;
- puts ("Sorry, unimplemented for now");
- exit(1);
- break;
- case 's':
- size++;
- break;
- case 'h':
- puts (USAGE);
- exit(0);
- default:
- printf ("\"%s\", Illegal option\n", argv[i]);
- puts (USAGE);
- exit(1);
- }
- i++;
- }
- infile = *(argv + i);
- outfile = *(argv + i+1);
-
- /* see it there were file names on the command line */
- if (infile == 0x0) {
- puts("Didn't specify an input file name");
- exit(1);
- }
- if (outfile == 0x0) {
- puts("Didn't specify an output file name");
- exit(1);
- }
-
- /* try to open the files */
- infd = open(infile, O_RDONLY);
- if (infd == -1) {
- printf("Couldn't open %s\n", infile);
- exit(1);
- }
-
- outfd = open(outfile, O_WRONLY|O_CREAT|O_TRUNC);
- if (outfd == -1) {
- printf("Couldn't open %s\n", outfile);
- exit(1);
- }
-
- if (verbose > 2)
- putchar('\n');
-
- /* calculate the checksum */
- while ((nbytes = read(infd, &buf, WORDSIZE)) == WORDSIZE) {
- if (verbose > 2)
- putchar('.');
- checksum+= buf;
- filesize+= WORDSIZE;
- if (write(outfd, &buf, WORDSIZE) != WORDSIZE) {
- puts("Couldn't write");
- }
- if (verbose > 3)
- putchar('+');
- }
- if (verbose > 2)
- putchar('\n');
-
- /* write the last byte read */
- if (nbytes > 0) {
- write(outfd, &buf, nbytes);
- checksum+= buf; /* calculate the last word */
- filesize+= nbytes;
- }
- /* write the checksum */
- buf = -checksum;
- write(outfd, &buf, WORDSIZE);
- filesize+= WORDSIZE; /* checksum increase the size */
-
- if (verbose > 0)
- printf("The calculated checksum is:\n\t0x%x,\n\t%u\n", -checksum, -checksum);
-
- /* calculate the extra 2K here */
- buf = 0;
- while ((filesize % 2048) !=0) {
- filesize+=WORDSIZE;
- write(outfd, &buf, WORDSIZE);
- }
- if (size > 0) {
- printf ("%u is the new file size\n", filesize);
- }
- close(outfd);
- close(infd);
- exit(0);
-}
-
-#if 0
-/* Calculate a simple checksum and concatenate it to the end of BUF. */
-void
-compute_and_concatenate_checksum (word *buf, size_t bufsize_in_words)
-{
- size_t i;
- word sum;
- sum = buf[0]
- for (i = 1; i < bufsize_in_words; i++)
- sum += buf[i];
- buf[bufsize_in_words] = -sum;
-}
-
-/* Calculate a simple checksum and verify it. NOTE: bufsize_in_words should
- include the checksum, i.e., it should be one larger than when the
- checksum was calculated using compute_and_concatenate_checksum! */
-int
-compute_and_and_verify_checksum (word *buf, size_t bufsize_in_words)
-{
- size_t i;
- word sum;
- sum = buf[0];
- for (i = 1; i < bufsize_in_words; i++)
- sum += buf[i];
- if (sum != 0)
- return ERROR;
- return SUCCESS;
-}
-#endif