1 /********** 2 Copyright 1990 Regents of the University of California. All rights reserved. 3 Author: 1985 Thomas L. Quarles 4 **********/ 5 6 /* 7 *CKTlinkEq 8 * Link an already allocated node into the necessary structure 9 */ 10 11 #include "ngspice/ngspice.h" 12 #include "ngspice/ifsim.h" 13 #include "ngspice/iferrmsg.h" 14 #include "ngspice/smpdefs.h" 15 #include "ngspice/cktdefs.h" 16 17 18 int CKTlinkEq(CKTcircuit * ckt,CKTnode * node)19CKTlinkEq(CKTcircuit *ckt, CKTnode *node) 20 { 21 if(!(ckt->CKTnodes)) { /* starting the list - allocate both ground and 1 */ 22 ckt->CKTnodes = TMALLOC(CKTnode, 1); 23 if(ckt->CKTnodes == NULL) return(E_NOMEM); 24 ckt->CKTnodes->name = NULL; 25 ckt->CKTnodes->type = SP_VOLTAGE; 26 ckt->CKTnodes->number = 0; 27 ckt->CKTlastNode = ckt->CKTnodes; 28 } 29 if(node == NULL) return(E_BADPARM); 30 ckt->CKTlastNode->next = node; 31 ckt->CKTlastNode = ckt->CKTlastNode->next; 32 ckt->CKTlastNode->number = ckt->CKTmaxEqNum++; 33 ckt->CKTlastNode->next = NULL; 34 return(OK); 35 } 36