Jspice3
Main Page
Data Structures
Files
File List
Globals
cktdest.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: 1987 Thomas L. Quarles
5
1992 Stephen R. Whiteley
6
****************************************************************************/
7
8
/* CKTdestroy(ckt)
9
* this is a driver program to iterate through all the various
10
* destroy functions provided for the circuit elements in the
11
* given circuit
12
*/
13
14
#include "
spice.h
"
15
#include <stdio.h>
16
#include "
devdefs.h
"
17
#include "
sperror.h
"
18
#include "
util.h
"
19
#include "
cktext.h
"
20
21
extern
SPICEdev
*
DEVices
[];
22
23
int
24
CKTdestroy
(inCkt)
25
26
GENERIC
*inCkt;
27
{
28
CKTcircuit
*ckt = (
CKTcircuit
*)inCkt;
29
int
i;
30
CKTnode
*node;
31
CKTnode
*nnode;
32
struct
sCKTmodHead
*mh, *mhnext;
33
34
35
for
(i = 0; i <
DEVmaxnum
; i++) {
36
if
((DEVices[i]->DEVdestroy !=
NULL
) &&
37
(ckt->
CKThead
[i] !=
NULL
)) {
38
(*DEVices[i]->
DEVdestroy
)(&ckt->
CKThead
[i]);
39
}
40
}
41
42
for
(mh = ckt->
CKTheadList
; mh !=
NULL
; mh = mhnext) {
43
mhnext = mh->
next
;
44
FREE
(mh);
45
}
46
47
for
(i = 0; i <= ckt->
CKTmaxOrder
+1; i++) {
48
FREE
(ckt->
CKTstates
[i]);
49
}
50
51
if
(ckt->
CKTmatrix
)
spDestroy
(ckt->
CKTmatrix
);
52
if
(ckt->
CKTbreaks
)
FREE
(ckt->
CKTbreaks
);
53
54
for
(node = ckt->
CKTnodes
; node; ) {
55
nnode = node->
next
;
56
FREE
(node);
57
node = nnode;
58
}
59
60
FREE
(ckt->
CKTtimePoints
);
61
62
INPtablFree
((
GENERIC
*)ckt);
63
64
FREE
(ckt);
65
return
(
OK
);
66
}
sCKTmodHead::next
struct sCKTmodHead * next
Definition:
cktdefs.h:58
CKTcircuit
Definition:
cktdefs.h:62
CKTcircuit::CKTmatrix
SMPmatrix * CKTmatrix
Definition:
cktdefs.h:95
sCKTnode
Definition:
cktdefs.h:30
FREE
#define FREE(ptr)
Definition:
spdefs.h:436
CKTcircuit::CKTmaxOrder
int CKTmaxOrder
Definition:
cktdefs.h:88
OK
#define OK
Definition:
iferrmsg.h:17
INPtablFree
void INPtablFree()
CKTcircuit::CKTheadList
struct sCKTmodHead * CKTheadList
Definition:
cktdefs.h:63
SPICEdev::DEVdestroy
void(* DEVdestroy)()
Definition:
devdefs.h:100
sperror.h
NULL
#define NULL
Definition:
spdefs.h:121
sCKTnode::next
struct sCKTnode * next
Definition:
cktdefs.h:43
util.h
CKTcircuit::CKTnodes
CKTnode * CKTnodes
Definition:
cktdefs.h:135
CKTcircuit::CKTstates
double * CKTstates[8]
Definition:
cktdefs.h:68
spice.h
cktext.h
SPICEdev
Definition:
devdefs.h:43
CKTdestroy
int CKTdestroy(GENERIC *inCkt)
Definition:
cktdest.c:24
CKTcircuit::CKTtimePoints
double * CKTtimePoints
Definition:
cktdefs.h:218
spDestroy
void spDestroy()
CKTcircuit::CKTbreaks
double * CKTbreaks
Definition:
cktdefs.h:179
sCKTmodHead
Definition:
cktdefs.h:55
DEVices
SPICEdev * DEVices[]
Definition:
sconfig.c:109
CKTcircuit::CKThead
GENmodel * CKThead[MAXNUMDEVS]
Definition:
cktdefs.h:64
DEVmaxnum
int DEVmaxnum
Definition:
sconfig.c:166
devdefs.h
GENERIC
char GENERIC
Definition:
ifsim.h:27
src
lib
ckt
cktdest.c
Generated by
1.8.11