📄 inpaname.c
字号:
/* * Copyright (c) 1985 Thomas L. Quarles */ /* * INPaName() * * Take a parameter by Name and ask for the specified value * *dev is -1 if type unknown, otherwise, device type * **fast is a device, and will be set if possible. */#include "prefix.h"#include <stdio.h>#include "util.h"#include "CPdefs.h"#ifndef CMS#include "FTEextern.h"#else /* CMS */#include "FTEexter.h"#endif /* CMS */#include "IFsim.h"#ifndef CMS#include "IFerrmsgs.h"#else /* CMS */#include "IFerrmsg.h"#endif /* CMS */#include "suffix.h"RCSID("INPaName.c $Revision: 1.1 $ on $Date: 91/04/02 11:56:30 $")intINPaName(parm,val,ckt,dev,devnam,fast,sim,dataType,selector) char *parm; /* the name of the parameter to set */ IFvalue *val; /* the parameter union containing the value to set */ GENERIC *ckt; /* the circuit this device is a member of */ int *dev; /* the device type code to the device being parsed */ char *devnam; /* the name of the device */ GENERIC **fast; /* direct pointer to device being parsed */ IFsimulator *sim; /* the simulator data structure */ int *dataType; /* the datatype of the returned value structure */ IFvalue *selector; /* data sub-selector for questions */{ int error; /* int to store evaluate error return codes in */ int i; /* find the instance - don't know about model, so use null there, * otherwise pass on as much info as we have about the device * (name, type, direct pointer) - the type and direct pointer * WILL be set on return unless error is not OK */ error = (*(sim->findInstance))(ckt,dev,fast,devnam,(GENERIC *)NULL, (char *)NULL); if(error) return(error); /* now find the parameter - hunt through the parameter tables for * this device type and look for a name match of an 'ask'able * parameter. */ for(i=0;i<(*(sim->devices)[*dev]).numInstanceParms;i++) { if(strcmp(parm, ((*(sim->devices)[*dev]).instanceParms[i].keyword))==0 && (((*(sim->devices)[*dev]).instanceParms[i].dataType)&IF_ASK)) { /* found it, so we ask the question using the device info we got * above and put the results in the IFvalue structure our caller * gave us originally */ error = (*(sim->askInstanceQuest))(ckt,*fast, (*(sim->devices)[*dev]).instanceParms[i].id,val, selector); if(dataType) *dataType = (*(sim->devices)[*dev]).instanceParms[i].dataType; return(error); } } return(E_BADPARM);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -