comparison 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
comparison
equal deleted inserted replaced
-1:000000000000 0:cd92449fdb51
1 /*
2 * These are the libueda routines for accessing the parsed MCL.
3 */
4
5 #include <stdio.h>
6 #include <strings.h>
7 #include "mcl.h"
8
9 extern struct component components[], partdefs[];
10 extern int ncomponents, npartdefs;
11
12 struct component *
13 find_partdef_by_name(partname)
14 register char *partname;
15 {
16 register struct component *part;
17 register int i;
18
19 for (part = partdefs, i = 0; i < npartdefs; part++, i++)
20 if (!strcmp(part->name, partname))
21 return(part);
22 return(NULL);
23 }
24
25 char *
26 get_comp_attr(comp, attrname)
27 struct component *comp;
28 char *attrname;
29 {
30 register struct attrib *attr;
31 register int i;
32
33 for (; comp; comp = comp->partdef) {
34 attr = comp->attrs;
35 for (i = 0; i < comp->nattrs; attr++, i++)
36 if (!strcmp(attr->name, attrname))
37 return(attr->value);
38 if (comp->partdef == comp)
39 break;
40 }
41 return(NULL);
42 }
43
44 char *
45 get_comp_multiattr(comp, attrname, cntp)
46 struct component *comp;
47 char *attrname;
48 int *cntp;
49 {
50 register struct attrib *attrs;
51 register int i;
52
53 attrs = comp->attrs;
54 for (i = *cntp; i < comp->nattrs; i++)
55 if (!strcmp(attrs[i].name, attrname)) {
56 *cntp = i + 1;
57 return(attrs[i].value);
58 }
59 return(NULL);
60 }