📄 inpaname.c
字号:
/**********Copyright 1990 Regents of the University of California. All rights reserved.Author: 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 "ngspice.h"#include <stdio.h>#include "cpdefs.h"#include "fteext.h"#include "ifsim.h"#include "iferrmsg.h"#include "inp.h"intINPaName(char *parm, IFvalue * val, void *ckt, int *dev, char *devnam, void **fast, IFsimulator * sim, int *dataType, IFvalue * selector) /* the name of the parameter to set */ /* the parameter union containing the value to set */ /* the circuit this device is a member of */ /* the device type code to the device being parsed */ /* the name of the device */ /* direct pointer to device being parsed */ /* the simulator data structure */ /* the datatype of the returned value structure */ /* 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, (void *) 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 + -