Jspice3
cktbindn.c File Reference
#include "spice.h"
#include <stdio.h>
#include "devdefs.h"
#include "sperror.h"
#include "util.h"
#include "cktext.h"
Include dependency graph for cktbindn.c:

Go to the source code of this file.

Functions

int CKTbindNode (GENERIC *ckt, GENERIC *fast, int term, GENERIC *node)
 

Variables

SPICEdevDEVices []
 

Function Documentation

int CKTbindNode ( GENERIC ckt,
GENERIC fast,
int  term,
GENERIC node 
)

Definition at line 24 of file cktbindn.c.

30 {
31  int i, mappednode;
32  int type = ((GENinstance *)fast)->GENmodPtr->GENmodType;
33  char key = *(char*)((GENinstance *)fast)->GENname;
34  IFkeys *keys = DEVices[type]->DEVpublic.keys;
35 
36  for (i = 0; i < *DEVices[type]->DEVpublic.numKeys; i++) {
37  if (keys[i].key == key)
38  break;
39  }
40  if (i == *DEVices[type]->DEVpublic.numKeys)
41  return (E_NOTERM);
42 
43  mappednode = ((CKTnode *)node)->number;
44 
45  if (keys[i].numTerms >= term && term > 0) {
46  switch (term) {
47  default:
48  return (E_NOTERM);
49  case 1:
50  ((GENinstance *)fast)->GENnode1 = mappednode;
51  break;
52  case 2:
53  ((GENinstance *)fast)->GENnode2 = mappednode;
54  break;
55  case 3:
56  ((GENinstance *)fast)->GENnode3 = mappednode;
57  break;
58  case 4:
59  ((GENinstance *)fast)->GENnode4 = mappednode;
60  break;
61  case 5:
62  ((GENinstance *)fast)->GENnode5 = mappednode;
63  break;
64  }
65  return (OK);
66  }
67  return (E_NOTERM);
68 }
IFkeys * keys
Definition: ifsim.h:297
IFdevice DEVpublic
Definition: devdefs.h:44
SPICEdev * DEVices[]
Definition: sconfig.c:109
#define OK
Definition: iferrmsg.h:17
Definition: types.c:18
Definition: ifsim.h:267
#define E_NOTERM
Definition: iferrmsg.h:25
int type
Definition: cktdefs.h:56
int * numKeys
Definition: ifsim.h:296

Variable Documentation

SPICEdev* DEVices[]

Definition at line 109 of file sconfig.c.