view ueda/sverp/misc.c @ 4:7b4f78fcca08

ueda/sverp Linuxified
author Space Falcon <falcon@ivan.Harhan.ORG>
date Mon, 20 Jul 2015 00:53:19 +0000
parents cd92449fdb51
children
line wrap: on
line source

/*
 * ueda-sverp miscellaneous functions
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include "struct.h"

extern struct module_def *glob_module_list, *top_module_def;
extern char *top_module_expl;

struct module_def *
find_module_by_name(namesought)
	register char *namesought;
{
	register struct module_def *m;

	for (m = glob_module_list; m; m = m->next)
		if (!strcmp(m->name, namesought))
			break;
	return(m);
}

process_explicit_topmod()
{
	register struct module_def *mod;

	mod = find_module_by_name(top_module_expl);
	if (!mod) {
		fprintf(stderr, "error: module \"%s\" (-t option) not found\n",
			top_module_expl);
		exit(1);
	}
	if (mod->is_primitive) {
		fprintf(stderr,
			"error: module %s selected with -t is a primitive\n",
			top_module_expl);
		exit(1);
	}
	if (mod->nports) {
		fprintf(stderr,
	"error: module %s (-t option) has ports and thus cannot be top\n",
			top_module_expl);
		exit(1);
	}
	/* all checks passed */
	top_module_def = mod;
}