136 lines
3.8 KiB
C
136 lines
3.8 KiB
C
/**********
|
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
|
Author: 1985 Thomas L. Quarles
|
|
**********/
|
|
|
|
#ifndef INP
|
|
#define INP
|
|
|
|
/* structure declarations used by either/both input package */
|
|
|
|
#include "ifsim.h"
|
|
#include "gendefs.h"
|
|
#include "inpptree.h"
|
|
|
|
struct INPtab {
|
|
char *t_ent;
|
|
struct INPtab *t_next;
|
|
};
|
|
|
|
struct INPnTab {
|
|
char *t_ent;
|
|
void* t_node;
|
|
struct INPnTab *t_next;
|
|
};
|
|
|
|
typedef struct sINPtables{
|
|
struct INPtab **INPsymtab;
|
|
struct INPnTab **INPtermsymtab;
|
|
int INPsize;
|
|
int INPtermsize;
|
|
void *defAmod;
|
|
void *defBmod;
|
|
void *defCmod;
|
|
void *defDmod;
|
|
void *defEmod;
|
|
void *defFmod;
|
|
void *defGmod;
|
|
void *defHmod;
|
|
void *defImod;
|
|
void *defJmod;
|
|
void *defKmod;
|
|
void *defLmod;
|
|
void *defMmod;
|
|
void *defNmod;
|
|
void *defOmod;
|
|
void *defPmod;
|
|
void *defQmod;
|
|
void *defRmod;
|
|
void *defSmod;
|
|
void *defTmod;
|
|
void *defUmod;
|
|
void *defVmod;
|
|
void *defWmod;
|
|
void *defYmod;
|
|
void *defZmod;
|
|
} INPtables;
|
|
|
|
typedef struct card{
|
|
int linenum;
|
|
char *line;
|
|
char *error;
|
|
struct card *nextcard;
|
|
struct card *actualLine;
|
|
} card;
|
|
|
|
/* structure used to save models in after they are read during pass 1 */
|
|
typedef struct sINPmodel{
|
|
IFuid INPmodName; /* uid of model */
|
|
int INPmodType; /* type index of device type */
|
|
struct sINPmodel *INPnextModel; /* link to next model */
|
|
int INPmodUsed; /* flag to indicate it has already been used */
|
|
card *INPmodLine; /* pointer to line describing model */
|
|
void *INPmodfast; /* high speed pointer to model for access */
|
|
} INPmodel;
|
|
|
|
/* listing types - used for debug listings */
|
|
#define LOGICAL 1
|
|
#define PHYSICAL 2
|
|
|
|
int IFnewUid(void*,IFuid*,IFuid,char*,int,void**);
|
|
int IFdelUid(void*,IFuid,int);
|
|
int INPaName(char*,IFvalue*,void*,int*,char*,void**,IFsimulator*,int*,
|
|
IFvalue*);
|
|
int INPapName(void*,int,void*,char*,IFvalue*);
|
|
void INPcaseFix(char*);
|
|
char * INPdevParse(char**,void*,int,void*,double*,int*,INPtables*);
|
|
char *INPdomodel(void *,card*, INPtables*);
|
|
void INPdoOpts(void*,void*,card*,INPtables*);
|
|
char *INPerrCat(char *, char *);
|
|
char *INPerror(int);
|
|
double INPevaluate(char**,int*,int);
|
|
char * INPfindLev(char*,int*);
|
|
char * INPgetMod(void*,char*,INPmodel**,INPtables*);
|
|
int INPgetTok(char**,char**,int);
|
|
void INPgetTree(char**,INPparseTree**,void*,INPtables*);
|
|
IFvalue * INPgetValue(void*,char**,int,INPtables*);
|
|
int INPgndInsert(void*,char**,INPtables*,void**);
|
|
int INPinsert(char**,INPtables*);
|
|
int INPretrieve(char**,INPtables*);
|
|
int INPremove(char*,INPtables*);
|
|
int INPlookMod(char*);
|
|
int INPmakeMod(char*,int,card*);
|
|
char *INPmkTemp(char*);
|
|
void INPpas1(void*,card*,INPtables*);
|
|
void INPpas2(void*,card*,INPtables*,void *);
|
|
int INPpName(char*,IFvalue*,void*,int,void*);
|
|
int INPtermInsert(void*,char**,INPtables*,void**);
|
|
int INPmkTerm(void*,char**,INPtables*,void**);
|
|
int INPtypelook(char*);
|
|
void INP2B(void*,INPtables*,card*);
|
|
void INP2C(void*,INPtables*,card*);
|
|
void INP2D(void*,INPtables*,card*);
|
|
void INP2E(void*,INPtables*,card*);
|
|
void INP2F(void*,INPtables*,card*);
|
|
void INP2G(void*,INPtables*,card*);
|
|
void INP2H(void*,INPtables*,card*);
|
|
void INP2I(void*,INPtables*,card*);
|
|
void INP2J(void*,INPtables*,card*);
|
|
void INP2K(void*,INPtables*,card*);
|
|
void INP2L(void*,INPtables*,card*);
|
|
void INP2M(void*,INPtables*,card*);
|
|
void INP2O(void*,INPtables*,card*);
|
|
void INP2Q(void*,INPtables*,card*,void*);
|
|
void INP2R(void*,INPtables*,card*);
|
|
void INP2S(void*,INPtables*,card*);
|
|
void INP2T(void*,INPtables*,card*);
|
|
void INP2U(void*,INPtables*,card*);
|
|
void INP2V(void*,INPtables*,card*);
|
|
void INP2W(void*,INPtables*,card*);
|
|
void INP2Z(void*,INPtables*,card*);
|
|
int INP2dot(void*,INPtables*,card*,void*,void*);
|
|
INPtables *INPtabInit(int);
|
|
void INPkillMods(void);
|
|
void INPtabEnd(INPtables *);
|
|
#endif /*INP*/
|