Jspice3
genmdel.c
Go to the documentation of this file.
1 /***************************************************************************
2 JSPICE3 adaptation of Spice3f2 - Copyright (c) Stephen R. Whiteley 1992
3 Copyright 1990 Regents of the University of California. All rights reserved.
4 Authors: 1985 Thomas L. Quarles
5  1993 Stephen R. Whiteley
6 ****************************************************************************/
7 
8 /*
9  * This routine deletes a typed model and its instances from the circuit
10  * and frees the storage used.
11  */
12 
13 #include "spice.h"
14 #include <stdio.h>
15 #include "gendefs.h"
16 #include "util.h"
17 #include "sperror.h"
18 
19 
20 int
21 GENmDelete(model,modname,modfast)
22 
23 GENmodel **model;
24 IFuid modname;
25 GENmodel *modfast;
26 {
27  GENinstance *here, *next;
28  GENmodel **oldmod;
29 
30  oldmod = model;
31  for ( ; *model; model = &((*model)->GENnextModel)) {
32  if ((*model)->GENmodName == modname ||
33  (modfast && *model == modfast)) break;
34  oldmod = model;
35  }
36  if (!*model) return(E_NOMOD);
37 
38  /* cut deleted device out of list */
39  *oldmod = (*model)->GENnextModel;
40 
41  for (here = (*model)->GENinstances; here; here = next) {
42  next = here->GENnextInstance;
43  FREE(here);
44  }
45  FREE(*model);
46  return (OK);
47 }
int GENmDelete(GENmodel **model, IFuid modname, GENmodel *modfast)
Definition: genmdel.c:21
struct sGENinstance * GENnextInstance
Definition: gendefs.h:26
struct sGENmodel * GENnextModel
Definition: gendefs.h:41
#define FREE(ptr)
Definition: spdefs.h:436
#define OK
Definition: iferrmsg.h:17
GENERIC * IFuid
Definition: ifsim.h:72
#define E_NOMOD
Definition: iferrmsg.h:23
static char model[32]
Definition: subckt.c:76