FreeCalypso > hg > ueda-linux
view netdiff/match/main.c @ 145:5e91200bf609
netdiff: donl-pinreport utility written, compiles
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 15 Nov 2020 01:17:10 +0000 |
parents | d3eb3790386d |
children |
line wrap: on
line source
#include <stdio.h> #include <stdlib.h> #include "struct.h" char *infnames[2]; struct pin_info *database; write_diffs_report(outfile) char *outfile; { FILE *outf; struct pin_info *p; outf = fopen(outfile, "w"); if (!outf) { perror(outfile); exit(1); } for (p = database; p; p = p->next) { if (p->netnames[0] && !p->netnames[1]) fprintf(outf, "Pin %s only in %s: net %s\n", p->pin_name, infnames[0], p->netnames[0]); if (!p->netnames[0] && p->netnames[1]) fprintf(outf, "Pin %s only in %s: net %s\n", p->pin_name, infnames[1], p->netnames[1]); } fclose(outf); } write_matching_nets(outfile) char *outfile; { FILE *outf; struct pin_info *p; outf = fopen(outfile, "w"); if (!outf) { perror(outfile); exit(1); } for (p = database; p; p = p->next) { if (!p->netnames[0] || !p->netnames[1]) continue; fprintf(outf, "%s\t%s\n", p->netnames[0], p->netnames[1]); } fclose(outf); } main(argc, argv) char **argv; { int i; if (argc != 5) { fprintf(stderr, "usage: %s net1 net2 diffs-report matching-nets\n", argv[0]); exit(1); } infnames[0] = argv[1]; infnames[1] = argv[2]; for (i = 0; i < 2; i++) read_pass(i); write_diffs_report(argv[3]); write_matching_nets(argv[4]); exit(0); }