Jspice3
cktnewn.c File Reference
#include "spice.h"
#include <stdio.h>
#include "cktdefs.h"
#include "iferrmsg.h"
#include "util.h"
#include "cktext.h"
Include dependency graph for cktnewn.c:

Go to the source code of this file.

Functions

int CKTnewNode (GENERIC *inCkt, GENERIC **node, IFuid name)
 

Function Documentation

int CKTnewNode ( GENERIC inCkt,
GENERIC **  node,
IFuid  name 
)

Definition at line 26 of file cktnewn.c.

31 {
32  CKTcircuit *ckt = (CKTcircuit *)inCkt;
33  if (!(ckt->CKTnodes)) {
34  /* starting the list - allocate both ground and 1 */
35  ckt->CKTnodes = (CKTnode *) MALLOC(sizeof(CKTnode));
36  if (ckt->CKTnodes == (CKTnode *)NULL) return (E_NOMEM);
37  ckt->CKTnodes->name = (char *)NULL;
38  ckt->CKTnodes->type = SP_VOLTAGE;
39  ckt->CKTnodes->number = 0;
40  ckt->CKTlastNode = ckt->CKTnodes;
41  }
42  ckt->CKTlastNode->next = (CKTnode *)MALLOC(sizeof(CKTnode));
43  if (ckt->CKTlastNode->next == (CKTnode *)NULL) return (E_NOMEM);
44  ckt->CKTlastNode = ckt->CKTlastNode->next;
45  ckt->CKTlastNode->name = name;
46  ckt->CKTlastNode->number = ckt->CKTmaxEqNum++;
47  ckt->CKTlastNode->type = SP_VOLTAGE;
48  ckt->CKTlastNode->next = (CKTnode *)NULL;
49 
50  if (node) *node = (GENERIC *)ckt->CKTlastNode;
51  return (OK);
52 }
IFuid name
Definition: cktdefs.h:31
#define SP_VOLTAGE
Definition: cktdefs.h:34
#define OK
Definition: iferrmsg.h:17
#define MALLOC(x)
Definition: util.h:9
int type
Definition: cktdefs.h:32
#define NULL
Definition: spdefs.h:121
#define E_NOMEM
Definition: iferrmsg.h:27
struct sCKTnode * next
Definition: cktdefs.h:43
int number
Definition: cktdefs.h:39
CKTnode * CKTnodes
Definition: cktdefs.h:135
CKTnode * CKTlastNode
Definition: cktdefs.h:136
int CKTmaxEqNum
Definition: cktdefs.h:129
return(True)
char GENERIC
Definition: ifsim.h:27