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