Jspice3
Main Page
Data Structures
Files
File List
Globals
inpdomod.c
Go to the documentation of this file.
1
/***************************************************************************
2
JSPICE3 adaptation of Spice3e2 - 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
1993 Stephen R. Whiteley
6
****************************************************************************/
7
8
#include "
spice.h
"
9
#include "
inpdefs.h
"
10
#include "
iferrmsg.h
"
11
#include "
misc.h
"
12
13
14
/*ARGSUSED*/
15
char
*
16
INPdomodel
(ckt,image,
tab
)
17
18
GENERIC
*ckt;
19
card
*image;
20
INPtables
*
tab
;
21
{
22
23
char
*modname, *token;
24
char
typename
[8];
25
char
*
err
= (
char
*)
NULL
;
26
char
*
line
, **
s
;
27
int
i, lev;
28
29
line = image->
line
;
30
INPgetTok
(&line,&token,1);
/* throw away '.model' */
31
txfree
(token);
32
33
INPgetTok
(&line,&modname,1);
34
INPinsert
(&modname,tab);
35
36
INPgetTok
(&line,&token,1);
37
if
(!token) {
38
err = (
char
*)
tmalloc
(35 + strlen(
typename
));
39
(void)sprintf(err,
".model syntax error - ignored\n"
);
40
return
(err);
41
}
42
43
for
(i = 0; i < 4 && token[i]; i++) {
44
typename
[i] = (isupper(token[i]) ? tolower(token[i]) : token[i]);
45
}
46
typename
[i] =
'\0'
;
47
txfree
(token);
48
49
for
(i = 0; i <
ft_sim
->
numDevices
; i++) {
50
s =
ft_sim
->
devices
[i]->
modelKeys
;
51
if
(s ==
NULL
)
52
continue
;
53
for
(; *s; s++) {
54
if
(!strcmp(*s,
typename
)) {
55
(void)
INPfindLev
(line,&lev);
56
lev--;
57
if
(
ft_sim
->
devices
[i]->
levelMask
& (1 << lev)) {
58
INPmakeMod
(modname,i,image);
59
return
(
NULL
);
60
}
61
break
;
62
}
63
}
64
}
65
err = (
char
*)
tmalloc
(35 + strlen(
typename
));
66
(void)sprintf(err,
"unknown model type %s - ignored\n"
,
typename
);
67
return
(err);
68
}
ft_sim
IFsimulator * ft_sim
Definition:
main.c:111
card::line
char * line
Definition:
inpdefs.h:64
misc.h
s
Definition:
cddefs.h:119
INPmakeMod
int INPmakeMod()
card
Definition:
inpdefs.h:62
sIFdevice::levelMask
unsigned levelMask
Definition:
ifsim.h:304
tab
Definition:
subckt.c:51
INPinsert
int INPinsert()
tmalloc
char * tmalloc()
line
Definition:
fteinp.h:14
sIFsimulator::devices
IFdevice ** devices
Definition:
ifsim.h:461
txfree
void txfree()
sIFdevice::modelKeys
char ** modelKeys
Definition:
ifsim.h:305
NULL
#define NULL
Definition:
spdefs.h:121
inpdefs.h
spice.h
iferrmsg.h
INPfindLev
char * INPfindLev()
sIFsimulator::numDevices
int numDevices
Definition:
ifsim.h:460
err
Definition:
mfb.h:383
INPdomodel
char * INPdomodel(GENERIC *ckt, card *image, INPtables *tab)
Definition:
inpdomod.c:16
sINPtables
Definition:
inpdefs.h:30
GENERIC
char GENERIC
Definition:
ifsim.h:27
INPgetTok
int INPgetTok()
src
lib
inp
inpdomod.c
Generated by
1.8.11