/* * comp.h - Component hierarchy * * Copyright 2012 by Werner Almesberger * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. */ #ifndef COMP_H #define COMP_H #include "libs.h" struct line { char *s; struct line *next; }; struct node { const char *name; const char *lib; /* NULL if intermediate node */ const struct name *names; /* canonical name and aliases of component */ int units; /* number of units; undefined if intermediate */ struct line *comment; /* NULL if intermediate node */ int indent; /* level of indentation (characters) */ struct node *parent; struct node *child; struct node *next; }; extern struct node *tree; void read_tree(FILE *file); void read_desc(FILE *file); void set_libs(struct node *node, const char *(*find_lib)(const char *sym, const struct name **names, int *units)); void dump_tree(void); void dump_comp(void); #endif /* !COMP_H */