FreeCalypso > hg > ueda-linux
diff ueda/libueda/mclacc.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 | c91e7a30fab3 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ueda/libueda/mclacc.c Mon Jul 20 00:24:37 2015 +0000 @@ -0,0 +1,60 @@ +/* + * These are the libueda routines for accessing the parsed MCL. + */ + +#include <stdio.h> +#include <strings.h> +#include "mcl.h" + +extern struct component components[], partdefs[]; +extern int ncomponents, npartdefs; + +struct component * +find_partdef_by_name(partname) + register char *partname; +{ + register struct component *part; + register int i; + + for (part = partdefs, i = 0; i < npartdefs; part++, i++) + if (!strcmp(part->name, partname)) + return(part); + return(NULL); +} + +char * +get_comp_attr(comp, attrname) + struct component *comp; + char *attrname; +{ + register struct attrib *attr; + register int i; + + for (; comp; comp = comp->partdef) { + attr = comp->attrs; + for (i = 0; i < comp->nattrs; attr++, i++) + if (!strcmp(attr->name, attrname)) + return(attr->value); + if (comp->partdef == comp) + break; + } + return(NULL); +} + +char * +get_comp_multiattr(comp, attrname, cntp) + struct component *comp; + char *attrname; + int *cntp; +{ + register struct attrib *attrs; + register int i; + + attrs = comp->attrs; + for (i = *cntp; i < comp->nattrs; i++) + if (!strcmp(attrs[i].name, attrname)) { + *cntp = i + 1; + return(attrs[i].value); + } + return(NULL); +}