FreeCalypso > hg > ueda-linux
view ueda/uschem-netlist/nlcomp.c @ 0:cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Mon, 20 Jul 2015 00:24:37 +0000 |
parents | |
children |
line wrap: on
line source
#include <sys/types.h> #include <stdio.h> #include "../libueda/mcl.h" #include "netlist.h" extern char *malloc(); extern struct component components[]; extern int ncomponents; extern char *get_comp_attr(); struct nlcomp *netlist_comps; alloc_nlcomp_array() { register int i; netlist_comps = (struct nlcomp *) malloc(sizeof(struct nlcomp) * ncomponents); if (!netlist_comps) { perror("malloc"); exit(1); } bzero(netlist_comps, sizeof(struct nlcomp) * ncomponents); for (i = 0; i < ncomponents; i++) { netlist_comps[i].mclcomp = components + i; fill_nlcomp(netlist_comps + i); } } fill_nlcomp(nlc) register struct nlcomp *nlc; { char *npins_attr; register int n; register struct pinconn **pintab; npins_attr = get_comp_attr(nlc->mclcomp, "npins"); if (!npins_attr) return; n = atoi(npins_attr); if (n <= 0) { fprintf(stderr, "%s: invalid npins attribute\n", nlc->mclcomp->name); exit(1); } nlc->npins = n; pintab = (struct pinconn **) malloc(sizeof(struct pinconn *) * n); if (!pintab) { perror("malloc"); exit(1); } bzero(pintab, sizeof(struct pinconn *) * n); nlc->pintab = pintab; } struct nlcomp * mclcomp_to_nlcomp(comp) struct component *comp; { return(netlist_comps + (comp - components)); }