extflat: integrate cb_extflat_hiervisitdevs_t for EFHierVisitDevs()
This commit is contained in:
parent
e1be3fe7d2
commit
6bbcd65c5f
|
|
@ -572,11 +572,14 @@ subcktHierVisit(
|
|||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* ARGSUSED */
|
||||
/* @typedef cb_extflat_hiervisitdevs_t (UNUSED) */
|
||||
int
|
||||
spcdevHierVisit(
|
||||
HierContext *hc,
|
||||
Dev *dev, /* Dev being output */
|
||||
float scale) /* Scale transform for output */
|
||||
float scale, /* Scale transform for output */
|
||||
ClientData cdata) /* unused */
|
||||
{
|
||||
DevParam *plist, *pptr;
|
||||
DevTerm *gate, *source, *drain;
|
||||
|
|
@ -1150,11 +1153,14 @@ spcdevHierVisit(
|
|||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* ARGSUSED */
|
||||
/* @typedef cb_extflat_hiervisitdevs_t (UNUSED) */
|
||||
int
|
||||
spcdevHierMergeVisit(
|
||||
HierContext *hc,
|
||||
Dev *dev, /* Dev being output */
|
||||
float scale) /* Scale of transform (may be non-integer) */
|
||||
float scale, /* Scale of transform (may be non-integer) */
|
||||
ClientData cdata) /* unused */
|
||||
{
|
||||
DevTerm *gate, *source, *drain;
|
||||
EFNode *subnode, *snode, *dnode, *gnode;
|
||||
|
|
@ -1272,12 +1278,15 @@ spcdevHierMergeVisit(
|
|||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* ARGSUSED */
|
||||
/* @typedef cb_extflat_hiervisitdevs_t (UNUSED) */
|
||||
int
|
||||
spccapHierVisit(
|
||||
HierContext *hc,
|
||||
HierName *hierName1,
|
||||
HierName *hierName2,
|
||||
double cap)
|
||||
double cap,
|
||||
ClientData cdata) /* unused */
|
||||
{
|
||||
cap = cap / 1000;
|
||||
if (fabs(cap) <= EFCapThreshold)
|
||||
|
|
@ -1574,7 +1583,7 @@ devMergeHierVisit(
|
|||
float m;
|
||||
|
||||
if (esDistrJunct)
|
||||
devDistJunctHierVisit(hc, dev, scale);
|
||||
devDistJunctHierVisit(hc, dev, scale, PTR2CD(NULL));
|
||||
|
||||
if (dev->dev_nterm < 2)
|
||||
{
|
||||
|
|
@ -1720,11 +1729,14 @@ mergeThem:
|
|||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* ARGSUSED */
|
||||
/* @typedef cb_extflat_hiervisitdevs_t (UNUSED) */
|
||||
int
|
||||
devDistJunctHierVisit(
|
||||
HierContext *hc,
|
||||
Dev *dev, /* Dev to examine */
|
||||
float scale) /* Scale tranform of output */
|
||||
float scale, /* Scale tranform of output */
|
||||
ClientData cdata) /* unused */
|
||||
{
|
||||
EFNode *n;
|
||||
int i, l, w;
|
||||
|
|
@ -2195,10 +2207,10 @@ esHierVisit(
|
|||
devMergeList = NULL;
|
||||
}
|
||||
else if (esDistrJunct)
|
||||
EFHierVisitDevs(hcf, devDistJunctHierVisit, (ClientData)NULL);
|
||||
EFHierVisitDevs(hcf, devDistJunctHierVisit, PTR2CD(NULL));
|
||||
|
||||
/* Output devices */
|
||||
EFHierVisitDevs(hcf, spcdevHierVisit, (ClientData)NULL);
|
||||
EFHierVisitDevs(hcf, spcdevHierVisit, PTR2CD(NULL));
|
||||
|
||||
/* Output lumped parasitic resistors */
|
||||
EFHierVisitResists(hcf, spcresistHierVisit, (ClientData)NULL);
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ extern int spcdevOutNode(const HierName *prefix, const HierName *suffix, const c
|
|||
extern int spcnAP(DevTerm *dterm, EFNode *node, int resClass, float scale, char *asterm, char *psterm, float m, FILE *outf, int w);
|
||||
extern int parallelDevs(const devMerge *f1, const devMerge *f2);
|
||||
extern int nodeHspiceName(char *s);
|
||||
extern int devDistJunctHierVisit(HierContext *hc, Dev *dev, float scale);
|
||||
extern int devDistJunctHierVisit(HierContext *hc, Dev *dev, float scale, ClientData cdata); /* @typedef cb_extflat_hiervisitdevs_t (UNUSED) */
|
||||
extern int spcnAPHier(DevTerm *dterm, HierName *hierName, int resClass, float scale, char *asterm, char *psterm, float m, FILE *outf);
|
||||
extern void mergeAttr(char **a1, char **a2);
|
||||
extern int update_w(short resClass, int w, EFNode *n);
|
||||
|
|
|
|||
|
|
@ -416,12 +416,13 @@ efHierDevKilled(hc, dev, prefix)
|
|||
* Visit all the devs in the circuit.
|
||||
* For each dev in the circuit, call the user-supplied procedure
|
||||
* (*devProc)(), which should be of the following form:
|
||||
* see also typedef cb_extflat_hiervisitdevs_t:
|
||||
*
|
||||
* (*devProc)(hc, dev, scale, cdata)
|
||||
* HierContext *hc;
|
||||
* Dev *dev;
|
||||
* float scale;
|
||||
* ClientData cdata;
|
||||
* int (*devProc)(
|
||||
* HierContext *hc,
|
||||
* Dev *dev,
|
||||
* float scale,
|
||||
* ClientData cdata)
|
||||
* {
|
||||
* }
|
||||
*
|
||||
|
|
@ -442,14 +443,14 @@ efHierDevKilled(hc, dev, prefix)
|
|||
*/
|
||||
|
||||
int
|
||||
EFHierVisitDevs(hc, devProc, cdata)
|
||||
HierContext *hc;
|
||||
int (*devProc)();
|
||||
ClientData cdata;
|
||||
EFHierVisitDevs(
|
||||
HierContext *hc,
|
||||
const cb_extflat_hiervisitdevs_t devProc,
|
||||
ClientData cdata)
|
||||
{
|
||||
CallArg ca;
|
||||
|
||||
ca.ca_proc = devProc;
|
||||
ca.ca_proc = (int (*)()) devProc;
|
||||
ca.ca_cdata = cdata;
|
||||
return efHierVisitDevs(hc, (ClientData) &ca);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -127,7 +127,8 @@ extern void EFHNOut();
|
|||
extern int EFHierSrDefs();
|
||||
extern int EFVisitSubcircuits();
|
||||
extern int EFHierVisitSubcircuits();
|
||||
extern int EFHierVisitDevs();
|
||||
typedef int (*cb_extflat_hiervisitdevs_t)(HierContext *hc, Dev *dev, float scale, ClientData cdata);
|
||||
extern int EFHierVisitDevs(HierContext *hc, const cb_extflat_hiervisitdevs_t devProc, ClientData cdata);
|
||||
extern int EFHierVisitResists();
|
||||
extern int EFHierVisitCaps();
|
||||
extern int EFHierVisitNodes();
|
||||
|
|
|
|||
Loading…
Reference in New Issue