use the types TSKtask and JOB, instead of void

This commit is contained in:
rlar 2010-10-08 16:46:06 +00:00
parent 7047535f96
commit 74d62ab486
28 changed files with 147 additions and 117 deletions

View File

@ -1,3 +1,33 @@
2010-10-08 Robert Larice
* src/frontend/shyu.c ,
* src/frontend/spiceif.c ,
* src/include/cktdefs.h ,
* src/include/ftedefs.h ,
* src/include/ifsim.h ,
* src/include/inpdefs.h ,
* src/spicelib/analysis/ckt.h ,
* src/spicelib/analysis/cktdelt.c ,
* src/spicelib/analysis/cktdojob.c ,
* src/spicelib/analysis/cktfnda.c ,
* src/spicelib/analysis/cktftask.c ,
* src/spicelib/analysis/cktnewan.c ,
* src/spicelib/analysis/cktntask.c ,
* src/spicelib/analysis/cktsetap.c ,
* src/spicelib/devices/bsim4/b4set.c ,
* src/spicelib/devices/bsim4v2/b4v2set.c ,
* src/spicelib/devices/bsim4v3/b4v3set.c ,
* src/spicelib/devices/bsim4v4/b4v4set.c ,
* src/spicelib/devices/bsim4v5/b4v5set.c ,
* src/spicelib/parser/inp.h ,
* src/spicelib/parser/inp2dot.c ,
* src/spicelib/parser/inpapnam.c ,
* src/spicelib/parser/inpdoopt.c ,
* src/spicelib/parser/inppas2.c ,
* src/spicelib/parser/inppas2.h ,
* src/spicelib/parser/inppas3.c ,
* src/spicelib/parser/inppas3.h :
use the types TSKtask and JOB, instead of void
2010-10-08 Robert Larice
* src/frontend/spiceif.c ,
* src/spicelib/analysis/cktnewan.c ,

View File

@ -28,11 +28,11 @@ int
if_sens_run(CKTcircuit *t, wordlist *args, INPtables *tab)
{
CKTcircuit *ckt = /* fixme, drop that */ t;
void *senseJob;
void *acJob;
void *opJob;
void *dcJob;
void *tranJob;
JOB *senseJob;
JOB *acJob;
JOB *opJob;
JOB *dcJob;
JOB *tranJob;
card *current;
IFvalue ptemp;
IFvalue *parm;
@ -69,8 +69,8 @@ if_sens_run(CKTcircuit *t, wordlist *args, INPtables *tab)
}
}
err = (*(ft_sim->newTask))(ft_curckt->ci_ckt,
(void **) &(ft_curckt->ci_specTask),"special",
(void**)&(ft_curckt->ci_defTask));
&(ft_curckt->ci_specTask), "special",
&(ft_curckt->ci_defTask));
if(err) {
ft_sperror(err,"newTask");
return(0); /* temporary */
@ -83,7 +83,7 @@ if_sens_run(CKTcircuit *t, wordlist *args, INPtables *tab)
}
if(which != -1) {
err = (*(ft_sim->newAnalysis))(ft_curckt->ci_ckt,which,"options",
(void **) &(ft_curckt->ci_specOpt),ft_curckt->ci_specTask);
&(ft_curckt->ci_specOpt), ft_curckt->ci_specTask);
if(err) {
ft_sperror(err,"createOptions");
return(0);/* temporary */

View File

@ -116,11 +116,11 @@ if_inpdeck(struct line *deck, INPtables **tab)
}
#if (0)
err =
(*(ft_sim->newTask))(ckt,(void**)&(ft_curckt->ci_defTask),taskUid);
(*(ft_sim->newTask))(ckt, &(ft_curckt->ci_defTask), taskUid);
#else /*CDHW*/
err =
(*(ft_sim->newTask))(ckt,(void**)&(ft_curckt->ci_defTask),taskUid,
(void**)NULL);
(*(ft_sim->newTask))(ckt, &(ft_curckt->ci_defTask), taskUid,
NULL);
#endif
if(err) {
ft_sperror(err,"newTask");
@ -145,8 +145,8 @@ if_inpdeck(struct line *deck, INPtables **tab)
}
err = (*(ft_sim->newAnalysis))(ft_curckt->ci_ckt,which,optUid,
(void**)&(ft_curckt->ci_defOpt),
(void*)ft_curckt->ci_defTask);
&(ft_curckt->ci_defOpt),
ft_curckt->ci_defTask);
/*CDHW ci_defTask and ci_defOpt point to parameters DDD CDHW*/
@ -254,11 +254,11 @@ ci_specTask will point to it CDHW*/
}
#if (0)
err = (*(ft_sim->newTask))(ft_curckt->ci_ckt,
(void**)&(ft_curckt->ci_specTask),specUid);
&(ft_curckt->ci_specTask), specUid);
#else /*CDHW*/
err = (*(ft_sim->newTask))(ft_curckt->ci_ckt,
(void**)&(ft_curckt->ci_specTask),
specUid,(void**)&(ft_curckt->ci_defTask));
&(ft_curckt->ci_specTask),
specUid, &(ft_curckt->ci_defTask));
#endif
if(err) {
ft_sperror(err,"newTask");
@ -281,8 +281,8 @@ ci_specTask will point to it CDHW*/
return(2);
}
err = (*(ft_sim->newAnalysis))(ft_curckt->ci_ckt,which,optUid,
(void**)&(ft_curckt->ci_specOpt),
(void*)ft_curckt->ci_specTask);
&(ft_curckt->ci_specOpt),
ft_curckt->ci_specTask);
/*CDHW 'options' ci_specOpt points to AAA in this case CDHW*/
@ -495,12 +495,12 @@ if_option(CKTcircuit *ckt, char *name, enum cp_types type, void *value)
}
#if (0)
if ((err = (*(ft_sim->setAnalysisParm))(cc, (void *)ft_curckt->ci_curOpt,
if ((err = (*(ft_sim->setAnalysisParm))(cc, ft_curckt->ci_curOpt,
ft_sim->analyses[which]->analysisParms[i].id, &pval,
(IFvalue *)NULL)) != OK)
ft_sperror(err, "setAnalysisParm(options) ci_curOpt");
#else /*CDHW*/
if ((err = (*(ft_sim->setAnalysisParm))(cc, (void *)ft_curckt->ci_defOpt,
if ((err = (*(ft_sim->setAnalysisParm))(cc, ft_curckt->ci_defOpt,
ft_sim->analyses[which]->analysisParms[i].id, &pval,
(IFvalue *)NULL)) != OK)
ft_sperror(err, "setAnalysisParm(options) ci_curOpt");
@ -1257,7 +1257,7 @@ if_getstat(CKTcircuit *ckt, char *name)
break;
if (i == ft_sim->analyses[which]->numParms)
return (NULL);
if ((*(ft_sim->askAnalysisQuest))(ckt, &(((TSKtask*)ft_curckt->ci_curTask)->taskOptions),
if ((*(ft_sim->askAnalysisQuest))(ckt, &(ft_curckt->ci_curTask->taskOptions),
ft_sim->analyses[which]->analysisParms[i].id, &parm,
(IFvalue *)NULL) == -1) {
fprintf(cp_err,
@ -1271,7 +1271,7 @@ if_getstat(CKTcircuit *ckt, char *name)
if(!(ft_sim->analyses[which]->analysisParms[i].dataType&IF_ASK)) {
continue;
}
if ((*(ft_sim->askAnalysisQuest))(ckt, &(((TSKtask*)ft_curckt->ci_curTask)->taskOptions),
if ((*(ft_sim->askAnalysisQuest))(ckt, &(ft_curckt->ci_curTask->taskOptions),
ft_sim->analyses[which]->analysisParms[i].id,
&parm, (IFvalue *)NULL) == -1) {
fprintf(cp_err,
@ -1488,28 +1488,28 @@ do {\
_foo(ckt->CKTbreaks,double,ckt->CKTbreakSize);
{ /* avoid invalid lvalue assignment errors in the macro _foo() */
TSKtask * lname = (TSKtask *)ft_curckt->ci_curTask;
TSKtask * lname = ft_curckt->ci_curTask;
_foo(lname,TSKtask,1);
}
/* To stop the Free */
((TSKtask *)ft_curckt->ci_curTask)->TSKname = NULL;
((TSKtask *)ft_curckt->ci_curTask)->jobs = NULL;
ft_curckt->ci_curTask->TSKname = NULL;
ft_curckt->ci_curTask->jobs = NULL;
_foo(((TSKtask *)ft_curckt->ci_curTask)->TSKname,char,-1);
_foo(ft_curckt->ci_curTask->TSKname, char, -1);
{ /* avoid invalid lvalue assignment errors in the macro _foo() */
TRANan * lname = (TRANan *)((TSKtask *)ft_curckt->ci_curTask)->jobs;
TRANan * lname = (TRANan *)ft_curckt->ci_curTask->jobs;
_foo(lname,TRANan,1);
}
((TSKtask *)ft_curckt->ci_curTask)->jobs->JOBname = NULL;
ckt->CKTcurJob = (&(((TSKtask *)ft_curckt->ci_curTask)->taskOptions))->jobs;
ft_curckt->ci_curTask->jobs->JOBname = NULL;
ckt->CKTcurJob = (&(ft_curckt->ci_curTask->taskOptions)) -> jobs;
_foo(((TSKtask *)ft_curckt->ci_curTask)->jobs->JOBname,char,-1);
_foo(ft_curckt->ci_curTask->jobs->JOBname, char, -1);
((TSKtask *)ft_curckt->ci_curTask)->jobs->JOBnextJob = NULL;
ft_curckt->ci_curTask->jobs->JOBnextJob = NULL;
((TRANan *)((TSKtask *)ft_curckt->ci_curTask)->jobs)->TRANplot = NULL;
((TRANan *)ft_curckt->ci_curTask->jobs)->TRANplot = NULL;
_foo(ckt->CKTstat,STATistics,1);
@ -1564,7 +1564,7 @@ void com_savesnap(wordlist *wl) {
ckt = ft_curckt->ci_ckt;
task = (TSKtask *)ft_curckt->ci_curTask;
task = ft_curckt->ci_curTask;
if(task->jobs->JOBtype != 4) {
fprintf(cp_err,"Only saving of tran analysis is implemented\n");

View File

@ -283,25 +283,25 @@ extern void CKTbreakDump(CKTcircuit *);
extern int CKTclrBreak(CKTcircuit *);
extern int CKTconvTest(CKTcircuit *);
extern int CKTcrtElt(CKTcircuit *, GENmodel *, GENinstance **, IFuid);
extern int CKTdelTask(CKTcircuit *, void *);
extern int CKTdelTask(CKTcircuit *, TSKtask *);
extern int CKTdestroy(CKTcircuit *);
extern int CKTdltAnal(void *, void *, void *);
extern int CKTdltInst(CKTcircuit *, void *);
extern int CKTdltMod(CKTcircuit *, GENmodel *);
extern int CKTdltNNum(CKTcircuit *, int);
extern int CKTdltNod(CKTcircuit *, CKTnode *);
extern int CKTdoJob(CKTcircuit *, int , void *);
extern int CKTdoJob(CKTcircuit *, int , TSKtask *);
extern void CKTdump(CKTcircuit *, double, void *);
#ifdef CIDER
extern void NDEVacct(CKTcircuit *ckt, FILE *file);
#endif /* CIDER */
extern void CKTncDump(CKTcircuit *);
extern int CKTfndAnal(CKTcircuit *, int *, void **, IFuid , void *, IFuid);
extern int CKTfndAnal(CKTcircuit *, int *, void **, IFuid , TSKtask *, IFuid);
extern int CKTfndBranch(CKTcircuit *, IFuid);
extern int CKTfndDev(CKTcircuit *, int *, GENinstance **, IFuid , GENmodel *, IFuid);
extern int CKTfndMod(CKTcircuit *, int *, GENmodel **, IFuid);
extern int CKTfndNode(CKTcircuit *, CKTnode **, IFuid);
extern int CKTfndTask(CKTcircuit *, void **, IFuid );
extern int CKTfndTask(CKTcircuit *, TSKtask **, IFuid );
extern int CKTground(CKTcircuit *, CKTnode **, IFuid);
extern int CKTic(CKTcircuit *);
extern int CKTinit(CKTcircuit **);
@ -316,10 +316,10 @@ extern int CKTmodAsk(CKTcircuit *, GENmodel *, int , IFvalue *, IFvalue *);
extern int CKTmodCrt(CKTcircuit *, int , GENmodel **, IFuid);
extern int CKTmodParam(CKTcircuit *, GENmodel *, int , IFvalue *, IFvalue *);
extern int CKTnames(CKTcircuit *, int *, IFuid **);
extern int CKTnewAnal(CKTcircuit *, int , IFuid , void **, void *);
extern int CKTnewAnal(CKTcircuit *, int , IFuid , JOB **, TSKtask *);
extern int CKTnewEq(CKTcircuit *, CKTnode **, IFuid);
extern int CKTnewNode(CKTcircuit *, CKTnode **, IFuid);
extern int CKTnewTask(CKTcircuit *, void **, IFuid, void **);
extern int CKTnewTask(CKTcircuit *, TSKtask **, IFuid, TSKtask **);
extern int CKTnoise (CKTcircuit *ckt, int mode, int operation, Ndata *data);
extern IFuid CKTnodName(CKTcircuit *, int);
extern void CKTnodOut(CKTcircuit *);
@ -339,7 +339,7 @@ extern int CKTsenLoad(CKTcircuit *);
extern void CKTsenPrint(CKTcircuit *);
extern int CKTsenSetup(CKTcircuit *);
extern int CKTsenUpdate(CKTcircuit *);
extern int CKTsetAnalPm(CKTcircuit *, void *, int , IFvalue *, IFvalue *);
extern int CKTsetAnalPm(CKTcircuit *, JOB *, int , IFvalue *, IFvalue *);
extern int CKTsetBreak(CKTcircuit *, double);
extern int CKTsetNodPm(CKTcircuit *, CKTnode *, int , IFvalue *, IFvalue *);
extern int CKTsetOpt(CKTcircuit *, void *, int , IFvalue *);

View File

@ -41,12 +41,12 @@ struct circ {
char *ci_nodes; /* ccom structs for the nodes... */
char *ci_devices; /* and devices in the circuit. */
char *ci_filename; /* Where this circuit came from. */
char *ci_defTask; /* the default task for this circuit */
char *ci_specTask; /* the special task for command line jobs */
char *ci_curTask; /* the most recent task for this circuit */
char *ci_defOpt; /* the default options anal. for this circuit */
char *ci_specOpt; /* the special options anal. for command line jobs */
char *ci_curOpt; /* the most recent options anal. for the circuit */
TSKtask *ci_defTask; /* the default task for this circuit */
TSKtask *ci_specTask; /* the special task for command line jobs */
TSKtask *ci_curTask; /* the most recent task for this circuit */
JOB *ci_defOpt; /* the default options anal. for this circuit */
JOB *ci_specOpt; /* the special options anal. for command line jobs */
JOB *ci_curOpt; /* the most recent options anal. for the circuit */
char *ci_last_an; /* name of last analysis run */
} ;

View File

@ -386,22 +386,22 @@ struct IFsimulator {
int (*deleteModel) (CKTcircuit *, GENmodel *);
/* delete a model from the circuit*/
int (*newTask) (CKTcircuit *, void **, IFuid, void **); /*CDHW*/
int (*newTask) (CKTcircuit *, TSKtask **, IFuid, TSKtask **); /*CDHW*/
/* create a new task */
int (*newAnalysis) (CKTcircuit *, int, IFuid, void **, void *);
int (*newAnalysis) (CKTcircuit *, int, IFuid, JOB **, TSKtask *);
/* create new analysis within a task */
int (*setAnalysisParm) (CKTcircuit *, void *, int, IFvalue *, IFvalue *);
int (*setAnalysisParm) (CKTcircuit *, JOB *, int, IFvalue *, IFvalue *);
/* set a parameter on an analysis */
int (*askAnalysisQuest) (CKTcircuit *, void *, int, IFvalue *, IFvalue *);
/* ask a question about an analysis */
int (*findAnalysis) (CKTcircuit *, int *, void **, IFuid, void *, IFuid);
int (*findAnalysis) (CKTcircuit *, int *, void **, IFuid, TSKtask *, IFuid);
/* find a specific analysis */
int (*findTask) (CKTcircuit *, void **, IFuid);
int (*findTask) (CKTcircuit *, TSKtask **, IFuid);
/* find a specific task */
int (*deleteTask) (CKTcircuit *, void *);
int (*deleteTask) (CKTcircuit *, TSKtask *);
/* delete a task */
int (*doAnalyses) (CKTcircuit *, int, void *);
int (*doAnalyses) (CKTcircuit *, int, TSKtask *);
char *(*nonconvErr) (CKTcircuit *, char *); /* return nonconvergence error */
int numDevices; /* number of device types supported */

View File

@ -90,11 +90,11 @@ int IFnewUid(CKTcircuit *, IFuid *, IFuid, char *, int, CKTnode **);
int IFdelUid(CKTcircuit *, IFuid, int);
int INPaName(char *, IFvalue *, CKTcircuit *, int *, char *, GENinstance **, IFsimulator *, int *,
IFvalue *);
int INPapName(CKTcircuit *, int, void *, char *, IFvalue *);
int INPapName(CKTcircuit *, int, JOB *, char *, IFvalue *);
void INPcaseFix(char *);
char *INPdevParse(char **, CKTcircuit *, int, GENinstance *, double *, int *, INPtables *);
char *INPdomodel(CKTcircuit *, card *, INPtables *);
void INPdoOpts(CKTcircuit *, void *, card *, INPtables *);
void INPdoOpts(CKTcircuit *, JOB *, card *, INPtables *);
char *INPerrCat(char *, char *);
char *INPerror(int);
double INPevaluate(char **, int *, int);
@ -114,8 +114,8 @@ int INPlookMod(char *);
int INPmakeMod(char *, int, card *);
char *INPmkTemp(char *);
void INPpas1(CKTcircuit *, card *, INPtables *);
void INPpas2(CKTcircuit *, card *, INPtables *, void *);
void INPpas3(CKTcircuit *, card *, INPtables *, void *, IFparm *, int);
void INPpas2(CKTcircuit *, card *, INPtables *, TSKtask *);
void INPpas3(CKTcircuit *, card *, INPtables *, TSKtask *, IFparm *, int);
int INPpName(char *, IFvalue *, CKTcircuit *, int, GENinstance *);
int INPtermInsert(CKTcircuit *, char **, INPtables *, CKTnode **);
int INPmkTerm(CKTcircuit *, char **, INPtables *, CKTnode **);
@ -144,7 +144,7 @@ void INP2V(CKTcircuit *, INPtables *, card *);
void INP2W(CKTcircuit *, INPtables *, card *);
void INP2Y(CKTcircuit *, INPtables *, card *);
void INP2Z(CKTcircuit *, INPtables *, card *);
int INP2dot(CKTcircuit *, INPtables *, card *, void *, CKTnode *);
int INP2dot(CKTcircuit *, INPtables *, card *, TSKtask *, CKTnode *);
INPtables *INPtabInit(int);
void INPkillMods(void);
void INPtabEnd(INPtables *);

View File

@ -26,20 +26,20 @@ void CKTbreakDump( CKTcircuit *);
int CKTclrBreak( CKTcircuit *);
int CKTconvTest( CKTcircuit *);
int CKTcrtElt( CKTcircuit *, GENmodel *, GENinstance **, IFuid );
int CKTdelTask( CKTcircuit *, void *);
int CKTdelTask( CKTcircuit *, TSKtask *);
int CKTdestroy( CKTcircuit *);
int CKTdltAnal( void *, void *, void *);
int CKTdltInst( CKTcircuit *, void *);
int CKTdltMod( CKTcircuit *, GENmodel *);
int CKTdltNod( CKTcircuit *, CKTnode *);
int CKTdoJob( CKTcircuit *, int , void *);
int CKTdoJob( CKTcircuit *, int , TSKtask *);
void CKTdump( CKTcircuit *, double, void *);
int CKTfndAnal( CKTcircuit *, int *, void **, IFuid , void *, IFuid );
int CKTfndAnal( CKTcircuit *, int *, void **, IFuid , TSKtask *, IFuid );
int CKTfndBranch( CKTcircuit *, IFuid);
int CKTfndDev( CKTcircuit *, int *, GENinstance **, IFuid , GENmodel *, IFuid );
int CKTfndMod( CKTcircuit *, int *, GENmodel **, IFuid );
int CKTfndNode( CKTcircuit *, CKTnode **, IFuid );
int CKTfndTask( CKTcircuit *, void **, IFuid );
int CKTfndTask( CKTcircuit *, TSKtask **, IFuid );
int CKTground( CKTcircuit *, CKTnode **, IFuid );
int CKTic( CKTcircuit *);
int CKTinit( CKTcircuit **);
@ -54,10 +54,10 @@ int CKTmodAsk( CKTcircuit *, GENmodel *, int , IFvalue *, IFvalue *);
int CKTmodCrt( CKTcircuit *, int , GENmodel **, IFuid );
int CKTmodParam( CKTcircuit *, GENmodel *, int , IFvalue *, IFvalue *);
int CKTnames(CKTcircuit *, int *, IFuid **);
int CKTnewAnal( CKTcircuit *, int , IFuid , void **, void *);
int CKTnewAnal( CKTcircuit *, int , IFuid , JOB **, TSKtask *);
int CKTnewEq( CKTcircuit *, CKTnode **, IFuid );
int CKTnewNode( CKTcircuit *, CKTnode **, IFuid );
int CKTnewTask( CKTcircuit *, void **, IFuid, void**);
int CKTnewTask( CKTcircuit *, TSKtask **, IFuid, TSKtask **);
IFuid CKTnodName( CKTcircuit *, int );
void CKTnodOut( CKTcircuit *);
CKTnode * CKTnum2nod( CKTcircuit *, int );
@ -75,7 +75,7 @@ int CKTsenLoad( CKTcircuit *);
void CKTsenPrint( CKTcircuit *);
int CKTsenSetup( CKTcircuit *);
int CKTsenUpdate( CKTcircuit *);
int CKTsetAnalPm( CKTcircuit *, void *, int , IFvalue *, IFvalue *);
int CKTsetAnalPm( CKTcircuit *, JOB *, int , IFvalue *, IFvalue *);
int CKTsetBreak( CKTcircuit *, double );
int CKTsetNodPm( CKTcircuit *, CKTnode *, int , IFvalue *, IFvalue *);
int CKTsetOpt( CKTcircuit *, void *, int , IFvalue *);

View File

@ -13,11 +13,11 @@ Author: 1985 Thomas L. Quarles
/* ARGSUSED */
int
CKTdelTask(CKTcircuit *ckt, void *task)
CKTdelTask(CKTcircuit *ckt, TSKtask *task)
{
JOB *job;
JOB *old=NULL;
for(job = ((TSKtask*)task)->jobs; job; job=job->JOBnextJob){
for(job = task->jobs; job; job=job->JOBnextJob){
if(old) FREE(old);
old=job;
}

View File

@ -24,10 +24,10 @@ Modified: 2000 AlansFixes
extern SPICEanalysis *analInfo[];
int
CKTdoJob(CKTcircuit *inCkt, int reset, void *inTask)
CKTdoJob(CKTcircuit *inCkt, int reset, TSKtask *inTask)
{
CKTcircuit *ckt = /* fixme, drop that */ inCkt;
TSKtask *task = (TSKtask *)inTask;
TSKtask *task = /* fixme, drop that */ inTask;
JOB *job;
double startTime;
int error, i, error2;

View File

@ -20,12 +20,12 @@ Author: 1985 Thomas L. Quarles
/* ARGSUSED */
int
CKTfndAnal(CKTcircuit *ckt, int *analIndex, void **anal, IFuid name, void *inTask, IFuid taskName)
CKTfndAnal(CKTcircuit *ckt, int *analIndex, void **anal, IFuid name, TSKtask *inTask, IFuid taskName)
{
TSKtask *task = (TSKtask *)inTask;
TSKtask *task = /* fixme, drop that */ inTask;
JOB *here;
for (here = ((TSKtask *)task)->jobs;here;here = here->JOBnextJob) {
for (here = task->jobs; here; here = here->JOBnextJob) {
if(strcmp(here->JOBname,name)==0) {
if(anal) *anal = (void *)here;
return(OK);

View File

@ -18,7 +18,7 @@ Author: 1985 Thomas L. Quarles
/* ARGSUSED */
int
CKTfndTask(CKTcircuit *ckt, void **taskPtr, IFuid taskName)
CKTfndTask(CKTcircuit *ckt, TSKtask **taskPtr, IFuid taskName)
{
return(E_UNSUPP);
}

View File

@ -16,20 +16,20 @@ extern SPICEanalysis *analInfo[];
/* ARGSUSED */
int
CKTnewAnal(CKTcircuit *ckt, int type, IFuid name, void **analPtr, void *taskPtr)
CKTnewAnal(CKTcircuit *ckt, int type, IFuid name, JOB **analPtr, TSKtask *taskPtr)
{
if(type==0) {
/* special case for analysis type 0 == option card */
*analPtr = &(((TSKtask *)taskPtr)->taskOptions); /* pointer to the task itself */
(*(JOB **)analPtr)->JOBname = name;
(*(JOB **)analPtr)->JOBtype = type;
*analPtr = &(taskPtr->taskOptions); /* pointer to the task itself */
(*analPtr)->JOBname = name;
(*analPtr)->JOBtype = type;
return(OK); /* doesn't need to be created */
}
*analPtr = (void *)MALLOC(analInfo[type]->size);
*analPtr = (JOB *)MALLOC(analInfo[type]->size);
if(*analPtr==NULL) return(E_NOMEM);
(*(JOB **)analPtr)->JOBname = name;
(*(JOB **)analPtr)->JOBtype = type;
(*(JOB **)analPtr)->JOBnextJob = ((TSKtask *)taskPtr)->jobs;
((TSKtask *)taskPtr)->jobs = (JOB *)*analPtr;
(*analPtr)->JOBname = name;
(*analPtr)->JOBtype = type;
(*analPtr)->JOBnextJob = taskPtr->jobs;
taskPtr->jobs = *analPtr;
return(OK);
}

View File

@ -19,18 +19,18 @@ int
CKTnewTask(CKTcircuit *ckt, void **taskPtr, IFuid taskName)
*/
int
CKTnewTask(CKTcircuit *ckt, void **taskPtr, IFuid taskName, void **defPtr)
CKTnewTask(CKTcircuit *ckt, TSKtask **taskPtr, IFuid taskName, TSKtask **defPtr)
/*CDHW See notes in spiceif.c for an explanation of these fixes CDHW*/
{
TSKtask *tsk, *def=NULL;
*taskPtr = (void *)tmalloc(sizeof(TSKtask));
*taskPtr = (TSKtask *)tmalloc(sizeof(TSKtask));
if(*taskPtr==NULL) return(E_NOMEM);
tsk = *(TSKtask **)taskPtr;
tsk = *taskPtr;
tsk->TSKname = taskName;
#if (1) /*CDHW*/
if(defPtr)
def = *(TSKtask **)defPtr;
def = *defPtr;
if ((strcmp(taskName,"special")==0) && def ) {
/* create options by copying the circuit's defaults */
tsk->TSKtemp = def->TSKtemp;

View File

@ -16,9 +16,9 @@ extern SPICEanalysis *analInfo[];
/* ARGSUSED */
int
CKTsetAnalPm(CKTcircuit *ckt, void *analPtr, int parm, IFvalue *value, IFvalue *selector)
CKTsetAnalPm(CKTcircuit *ckt, JOB *analPtr, int parm, IFvalue *value, IFvalue *selector)
{
int type = ((JOB *)analPtr)->JOBtype;
int type = analPtr->JOBtype;
if((analInfo[type]->setParm)==NULL) return(E_BADPARM);
return( (*(analInfo[type]->setParm))(ckt,analPtr,parm,value) );
}

View File

@ -72,7 +72,7 @@ int nthreads;
#endif
/* Search for a noise analysis request */
for (job = ((TSKtask *)ft_curckt->ci_curTask)->jobs;job;job = job->JOBnextJob) {
for (job = ft_curckt->ci_curTask->jobs; job; job = job->JOBnextJob) {
if(strcmp(job->JOBname,"Noise Analysis")==0) {
noiseAnalGiven = 1;
break;

View File

@ -50,7 +50,7 @@ double Rtot, DMCGeff, DMCIeff, DMDGeff;
JOB *job;
/* Search for a noise analysis request */
for (job = ((TSKtask *)(ft_curckt->ci_curTask))->jobs;job;job = job->JOBnextJob) {
for (job = ft_curckt->ci_curTask->jobs; job; job = job->JOBnextJob) {
if(strcmp(job->JOBname,"Noise Analysis")==0) {
noiseAnalGiven = 1;
break;

View File

@ -48,7 +48,7 @@ double Rtot, DMCGeff, DMCIeff, DMDGeff;
JOB *job;
/* Search for a noise analysis request */
for (job = ((TSKtask *)ft_curckt->ci_curTask)->jobs;job;job = job->JOBnextJob) {
for (job = ft_curckt->ci_curTask->jobs; job; job = job->JOBnextJob) {
if(strcmp(job->JOBname,"Noise Analysis")==0) {
noiseAnalGiven = 1;
break;

View File

@ -53,7 +53,7 @@ double Rtot, DMCGeff, DMCIeff, DMDGeff;
JOB *job;
/* Search for a noise analysis request */
for (job = ((TSKtask *)ft_curckt->ci_curTask)->jobs;job;job = job->JOBnextJob) {
for (job = ft_curckt->ci_curTask->jobs; job; job = job->JOBnextJob) {
if(strcmp(job->JOBname,"Noise Analysis")==0) {
noiseAnalGiven = 1;
break;

View File

@ -51,7 +51,7 @@ double Rtot, DMCGeff, DMCIeff, DMDGeff;
JOB *job;
/* Search for a noise analysis request */
for (job = ((TSKtask *)ft_curckt->ci_curTask)->jobs;job;job = job->JOBnextJob) {
for (job = ft_curckt->ci_curTask->jobs; job; job = job->JOBnextJob) {
if(strcmp(job->JOBname,"Noise Analysis")==0) {
noiseAnalGiven = 1;
break;

View File

@ -42,16 +42,16 @@ void INP2V(CKTcircuit *ckt, INPtables *tab, card *current);
void INP2W(CKTcircuit *ckt, INPtables *tab, card *current);
void INP2Y(CKTcircuit *ckt, INPtables *tab, card *current);
void INP2Z(CKTcircuit *ckt, INPtables *tab, card *current);
int INP2dot(CKTcircuit *ckt, INPtables *tab, card *current, void *task, CKTnode *gnode);
int INP2dot(CKTcircuit *ckt, INPtables *tab, card *current, TSKtask *task, CKTnode *gnode);
/* inpxxxx.c */
int INPaName(char *parm, IFvalue *val, CKTcircuit *ckt, int *dev, char *devnam,
GENinstance **fast, IFsimulator *sim, int *dataType, IFvalue *selector);
int INPapName(CKTcircuit *ckt, int type, void *analPtr, char *parmname, IFvalue *value);
int INPapName(CKTcircuit *ckt, int type, JOB *analPtr, char *parmname, IFvalue *value);
void INPcaseFix(register char *string);
char * INPdomodel(CKTcircuit *ckt, card *image, INPtables *tab);
void INPdoOpts(CKTcircuit *ckt, void *anal, card *optCard, INPtables *tab);
void INPdoOpts(CKTcircuit *ckt, JOB *anal, card *optCard, INPtables *tab);
char * INPdevParse(char **line, CKTcircuit *ckt, int dev, GENinstance *fast, double *leading,
int *waslead, INPtables *tab);
char * INPerrCat(char *a, char *b);
@ -72,7 +72,7 @@ int INPlookMod(char *name);
int INPmakeMod(char *token, int type, card *line);
char * INPmkTemp(char *string);
void INPpas1(CKTcircuit *ckt, card *deck, INPtables *tab);
void INPpas2(CKTcircuit *ckt, card *data, INPtables *tab, void *task);
void INPpas2(CKTcircuit *ckt, card *data, INPtables *tab, TSKtask *task);
int INPpName(char *parm, IFvalue *val, CKTcircuit *ckt, int dev, GENinstance *fast);
/* inpptree.c */

View File

@ -16,7 +16,7 @@ Modified: 2000 AlansFixes
static int
dot_noise(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
void *task, CKTnode *gnode, void *foo)
TSKtask *task, CKTnode *gnode, JOB *foo)
{
int which; /* which analysis we are performing */
int i; /* generic loop variable */
@ -124,7 +124,7 @@ dot_noise(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
static int
dot_op(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
void *task, CKTnode *gnode, void *foo)
TSKtask *task, CKTnode *gnode, JOB *foo)
{
int which; /* which analysis we are performing */
int i; /* generic loop variable */
@ -149,7 +149,7 @@ dot_op(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
static int
dot_disto(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
void *task, CKTnode *gnode, void *foo)
TSKtask *task, CKTnode *gnode, JOB *foo)
{
int which; /* which analysis we are performing */
int i; /* generic loop variable */
@ -190,7 +190,7 @@ dot_disto(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
static int
dot_ac(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
void *task, CKTnode *gnode, void *foo)
TSKtask *task, CKTnode *gnode, JOB *foo)
{
int error; /* error code temporary */
IFvalue ptemp; /* a value structure to package resistance into */
@ -227,7 +227,7 @@ dot_ac(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
static int
dot_pz(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
void *task, CKTnode *gnode, void *foo)
TSKtask *task, CKTnode *gnode, JOB *foo)
{
int error; /* error code temporary */
IFvalue ptemp; /* a value structure to package resistance into */
@ -269,7 +269,7 @@ dot_pz(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
static int
dot_dc(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
void *task, CKTnode *gnode, void *foo)
TSKtask *task, CKTnode *gnode, JOB *foo)
{
char *name; /* the resistor's name */
int error; /* error code temporary */
@ -320,7 +320,7 @@ dot_dc(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
static int
dot_tf(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
void *task, CKTnode *gnode, void *foo)
TSKtask *task, CKTnode *gnode, JOB *foo)
{
char *name; /* the resistor's name */
int error; /* error code temporary */
@ -393,7 +393,7 @@ dot_tf(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
static int
dot_tran(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
void *task, CKTnode *gnode, void *foo)
TSKtask *task, CKTnode *gnode, JOB *foo)
{
int error; /* error code temporary */
IFvalue ptemp; /* a value structure to package resistance into */
@ -447,7 +447,7 @@ dot_tran(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
static int
dot_sens(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
void *task, CKTnode *gnode, void *foo)
TSKtask *task, CKTnode *gnode, JOB *foo)
{
char *name; /* the resistor's name */
int error; /* error code temporary */
@ -549,7 +549,7 @@ dot_sens(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
#ifdef WANT_SENSE2
static int
dot_sens2(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
void *task, CKTnode *gnode, void *foo)
TSKtask *task, CKTnode *gnode, JOB *foo)
{
int error; /* error code temporary */
IFvalue ptemp; /* a value structure to package resistance into */
@ -621,24 +621,24 @@ dot_sens2(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
static int
dot_options(char *line, CKTcircuit *ckt, INPtables *tab, card *current,
void *task, CKTnode *gnode, void *foo)
TSKtask *task, CKTnode *gnode, JOB *foo)
{
/* .option - specify program options - rather complicated */
/* use a subroutine to handle all of them to keep this */
/* subroutine managable. */
INPdoOpts(ckt, &(((TSKtask *)task)->taskOptions), current, tab);
INPdoOpts(ckt, &(task->taskOptions), current, tab);
return (0);
}
int
INP2dot(CKTcircuit *ckt, INPtables *tab, card *current, void *task, CKTnode *gnode)
INP2dot(CKTcircuit *ckt, INPtables *tab, card *current, TSKtask *task, CKTnode *gnode)
{
/* .<something> Many possibilities */
char *token; /* a token from the line, tmalloc'ed */
void *foo = NULL; /* pointer to analysis */
JOB *foo = NULL; /* pointer to analysis */
/* the part of the current line left to parse */
char *line = current->line;
int rtn = 0;

View File

@ -12,7 +12,7 @@ Author: 1985 Thomas L. Quarles
#include "inp.h"
int
INPapName(CKTcircuit *ckt, int type, void *analPtr, char *parmname,
INPapName(CKTcircuit *ckt, int type, JOB *analPtr, char *parmname,
IFvalue * value)
{
int i;

View File

@ -20,7 +20,7 @@ Modified: 2000 AlansFixes
void
INPdoOpts(
CKTcircuit *ckt,
void *anal,
JOB *anal,
card *optCard,
INPtables *tab)
{

View File

@ -26,7 +26,7 @@ extern void SetAnalyse( char * Analyse, int Percent);
/* pass 2 - Scan through the lines. ".model" cards have processed in
* pass1 and are ignored here. */
void INPpas2(CKTcircuit *ckt, card * data, INPtables * tab, void *task)
void INPpas2(CKTcircuit *ckt, card * data, INPtables * tab, TSKtask *task)
{
card *current;

View File

@ -3,7 +3,7 @@
#include <inpdefs.h>
void INPpas2(CKTcircuit *ckt, card *data, INPtables *tab, void *task);
void INPpas2(CKTcircuit *ckt, card *data, INPtables *tab, TSKtask *task);
#endif

View File

@ -21,7 +21,7 @@ extern IFsimulator *ft_sim;
* warning. */
void
INPpas3(CKTcircuit *ckt, card *data, INPtables *tab, void *task,
INPpas3(CKTcircuit *ckt, card *data, INPtables *tab, TSKtask *task,
IFparm *nodeParms, int numNodeParms)
{

View File

@ -4,7 +4,7 @@
#include <inpdefs.h>
void INPpas3(CKTcircuit *ckt, card *data, INPtables *tab, void *task,
void INPpas3(CKTcircuit *ckt, card *data, INPtables *tab, TSKtask *task,
IFparm *nodeParms, int numNodeParams);