You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.1 KiB
45 lines
1.1 KiB
/**********
|
|
Copyright 1990 Regents of the University of California. All rights reserved.
|
|
Author: 1985 Thomas L. Quarles
|
|
**********/
|
|
|
|
/* CKTask
|
|
*
|
|
* Ask questions about a specified device. */
|
|
|
|
#include <config.h>
|
|
#include <devdefs.h>
|
|
#include <sperror.h>
|
|
|
|
#include "dev.h"
|
|
|
|
|
|
int
|
|
CKTask(void *ckt, void *fast, int which, IFvalue *value, IFvalue *selector)
|
|
{
|
|
GENinstance *instance = (GENinstance *) fast;
|
|
int type = instance->GENmodPtr->GENmodType;
|
|
int error;
|
|
#ifdef PARALLEL_ARCH
|
|
long msgtype, length;
|
|
long from = instance->GENowner;
|
|
#endif /* PARALLEL_ARCH */
|
|
SPICEdev **DEVices;
|
|
|
|
DEVices = devices();
|
|
if((*DEVices[type]).DEVask) {
|
|
error = DEVices[type]->DEVask((CKTcircuit *)ckt,
|
|
(GENinstance *)fast,which,value,selector);
|
|
} else {
|
|
error = E_BADPARM;
|
|
}
|
|
#ifdef PARALLEL_ARCH
|
|
msgtype = MT_ASK;
|
|
length = sizeof(IFvalue);
|
|
BRDCST_(&msgtype, (char *)value, &length, &from);
|
|
msgtype++;
|
|
length = sizeof(int);
|
|
BRDCST_(&msgtype, (char *)&error, &length, &from);
|
|
#endif /* PARALLEL_ARCH */
|
|
return(error);
|
|
}
|