extract: convert K&R function definitions to ANSI C

Convert the old-style (K&R) function definitions in extract/ to ANSI C
prototypes, formatted in the project's convention: the return type on its
own line and each parameter on its own line, indented four spaces, with
the original parameter comments retained.

Updates the extract headers (extract.h, extractInt.h).  Where the
generically-typed node-name callback field is assigned the now-prototyped
extArrayTileToNode / extSubtreeTileToNode, the assignment is cast to the
field's function-pointer type.

Builds cleanly under GCC 16 / C23 (with the -std=gnu17 build change).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Andreas Wendleder 2026-06-10 03:49:03 +02:00
parent 97be8b72f0
commit 61a0a0541c
No known key found for this signature in database
GPG Key ID: 588785BFDFB01ABD
19 changed files with 895 additions and 873 deletions

View File

@ -60,8 +60,8 @@ ExtTree *extArrayPrimary; /* Primary array element */
/* Forward declarations */ /* Forward declarations */
int extArrayFunc(); int extArrayFunc();
int extArrayPrimaryFunc(), extArrayInterFunc(); int extArrayPrimaryFunc(), extArrayInterFunc();
char *extArrayRange(); char *extArrayRange(char *dstp, int lo, int hi, bool prevRange, bool followRange);
char *extArrayTileToNode(); char *extArrayTileToNode(Tile *tp, TileType dinfo, int pNum, ExtTree *et, HierExtractArg *ha, bool doHard);
LabRegion *extArrayHardNode(); LabRegion *extArrayHardNode();
char *extArrayNodeName(); char *extArrayNodeName();
@ -85,9 +85,9 @@ void extArrayHardSearch();
*/ */
void void
extOutputGeneratedLabels(parentUse, f) extOutputGeneratedLabels(
CellUse *parentUse; CellUse *parentUse,
FILE *f; FILE *f)
{ {
CellDef *parentDef; CellDef *parentDef;
Label *lab; Label *lab;
@ -147,9 +147,9 @@ extOutputGeneratedLabels(parentUse, f)
*/ */
void void
extArray(parentUse, f) extArray(
CellUse *parentUse; CellUse *parentUse,
FILE *f; FILE *f)
{ {
SearchContext scx; SearchContext scx;
HierExtractArg ha; HierExtractArg ha;
@ -161,7 +161,7 @@ extArray(parentUse, f)
*/ */
ha.ha_outf = f; ha.ha_outf = f;
ha.ha_parentUse = parentUse; ha.ha_parentUse = parentUse;
ha.ha_nodename = extArrayTileToNode; ha.ha_nodename = (char *(*)()) extArrayTileToNode;
ha.ha_cumFlat.et_use = extYuseCum; ha.ha_cumFlat.et_use = extYuseCum;
HashInit(&ha.ha_connHash, 32, 0); HashInit(&ha.ha_connHash, 32, 0);
@ -232,9 +232,9 @@ extArray(parentUse, f)
*/ */
int int
extArrayFunc(scx, ha) extArrayFunc(
SearchContext *scx; /* Describes first element of array */ SearchContext *scx, /* Describes first element of array */
HierExtractArg *ha; /* Extraction context */ HierExtractArg *ha) /* Extraction context */
{ {
int xsep, ysep; /* X, Y separation in parent coordinates */ int xsep, ysep; /* X, Y separation in parent coordinates */
int xsize, ysize; /* X, Y sizes in parent coordinates */ int xsize, ysize; /* X, Y sizes in parent coordinates */
@ -358,9 +358,9 @@ extArrayFunc(scx, ha)
*/ */
void void
extArrayProcess(ha, primary) extArrayProcess(
HierExtractArg *ha; HierExtractArg *ha,
Rect *primary; /* Area guaranteed to contain only the primary Rect *primary) /* Area guaranteed to contain only the primary
* element of the array, against which we will * element of the array, against which we will
* extract all other elements that overlap the * extract all other elements that overlap the
* area 'ha->ha_interArea'. * area 'ha->ha_interArea'.
@ -421,13 +421,14 @@ done:
*/ */
int int
extArrayPrimaryFunc(use, trans, x, y, ha) extArrayPrimaryFunc(
CellUse *use; /* Use of which this is an array element */ CellUse *use, /* Use of which this is an array element */
Transform *trans; /* Transform from coordinates of use->cu_def to those Transform *trans, /* Transform from coordinates of use->cu_def to those
* in use->cu_parent, for the array element (x, y). * in use->cu_parent, for the array element (x, y).
*/ */
int x, y; /* X, Y indices of this array element */ int x,
HierExtractArg *ha; int y,
HierExtractArg *ha)
{ {
CellDef *primDef; CellDef *primDef;
HierYank hy; HierYank hy;
@ -493,13 +494,14 @@ extArrayPrimaryFunc(use, trans, x, y, ha)
*/ */
int int
extArrayInterFunc(use, trans, x, y, ha) extArrayInterFunc(
CellUse *use; /* Use of which this is an array element */ CellUse *use, /* Use of which this is an array element */
Transform *trans; /* Transform from use->cu_def to use->cu_parent Transform *trans, /* Transform from use->cu_def to use->cu_parent
* coordinates, for the array element (x, y). * coordinates, for the array element (x, y).
*/ */
int x, y; /* X, Y of this array element in use->cu_def coords */ int x,
HierExtractArg *ha; int y,
HierExtractArg *ha)
{ {
CellUse *cumUse = ha->ha_cumFlat.et_use; CellUse *cumUse = ha->ha_cumFlat.et_use;
CellDef *cumDef = cumUse->cu_def; CellDef *cumDef = cumUse->cu_def;
@ -654,9 +656,10 @@ extArrayInterFunc(use, trans, x, y, ha)
} }
void void
extArrayAdjust(ha, et1, et2) extArrayAdjust(
HierExtractArg *ha; HierExtractArg *ha,
ExtTree *et1, *et2; ExtTree *et1,
ExtTree *et2)
{ {
CapValue cap; /* value of capacitance WAS: int */ CapValue cap; /* value of capacitance WAS: int */
NodeRegion *np; NodeRegion *np;
@ -707,10 +710,11 @@ extArrayAdjust(ha, et1, et2)
} }
char * char *
extArrayNodeName(np, ha, et1, et2) extArrayNodeName(
NodeRegion *np; NodeRegion *np,
HierExtractArg *ha; HierExtractArg *ha,
ExtTree *et1, *et2; ExtTree *et1,
ExtTree *et2)
{ {
Tile *tp; Tile *tp;
TileType dinfo; TileType dinfo;
@ -769,13 +773,13 @@ extArrayNodeName(np, ha, et1, et2)
*/ */
char * char *
extArrayTileToNode(tp, dinfo, pNum, et, ha, doHard) extArrayTileToNode(
Tile *tp; Tile *tp,
TileType dinfo; TileType dinfo,
int pNum; int pNum,
ExtTree *et; ExtTree *et,
HierExtractArg *ha; HierExtractArg *ha,
bool doHard; /* If TRUE, we look up this node's name the hard way bool doHard) /* If TRUE, we look up this node's name the hard way
* if we can't find it any other way; otherwise, we * if we can't find it any other way; otherwise, we
* return NULL if we can't find the node's name. * return NULL if we can't find the node's name.
*/ */
@ -885,11 +889,12 @@ done:
*/ */
char * char *
extArrayRange(dstp, lo, hi, prevRange, followRange) extArrayRange(
char *dstp; char *dstp,
int lo, hi; int lo,
bool prevRange; /* TRUE if preceded by a range */ int hi,
bool followRange; /* TRUE if followed by a range */ bool prevRange, /* TRUE if preceded by a range */
bool followRange) /* TRUE if followed by a range */
{ {
if (!prevRange) *dstp++ = '['; if (!prevRange) *dstp++ = '[';
if (hi < lo) if (hi < lo)
@ -936,12 +941,12 @@ extArrayRange(dstp, lo, hi, prevRange, followRange)
*/ */
LabRegion * LabRegion *
extArrayHardNode(tp, dinfo, pNum, def, ha) extArrayHardNode(
Tile *tp; Tile *tp,
TileType dinfo; TileType dinfo,
int pNum; int pNum,
CellDef *def; CellDef *def,
HierExtractArg *ha; HierExtractArg *ha)
{ {
TileType type; TileType type;
char labelBuf[4096]; char labelBuf[4096];
@ -1010,11 +1015,11 @@ extArrayHardNode(tp, dinfo, pNum, def, ha)
*/ */
void void
extArrayHardSearch(def, arg, scx, proc) extArrayHardSearch(
CellDef *def; CellDef *def,
HardWay *arg; HardWay *arg,
SearchContext *scx; SearchContext *scx,
int (*proc)(); int (*proc)())
{ {
Transform tinv; Transform tinv;

View File

@ -154,7 +154,7 @@ void extTermAPFunc();
int extAnnularTileFunc(Tile *, TileType, int, FindRegion *); /* UNUSED */ int extAnnularTileFunc(Tile *, TileType, int, FindRegion *); /* UNUSED */
int extResistorTileFunc(Tile *, TileType, int, FindRegion *); /* UNUSED */ int extResistorTileFunc(Tile *, TileType, int, FindRegion *); /* UNUSED */
int extSpecialPerimFunc(); int extSpecialPerimFunc(Boundary *bp, bool sense);
void extFindDuplicateLabels(); void extFindDuplicateLabels();
void extOutputDevices(); void extOutputDevices();
@ -170,10 +170,10 @@ bool extLabType();
/* that is not in the topmost def of the search. */ /* that is not in the topmost def of the search. */
int int
extFoundFunc(tile, dinfo, cxp) extFoundFunc(
Tile *tile; Tile *tile,
TileType dinfo; // Unused TileType dinfo, // Unused
TreeContext *cxp; TreeContext *cxp)
{ {
CellDef *def = (CellDef *)cxp->tc_filter->tf_arg; CellDef *def = (CellDef *)cxp->tc_filter->tf_arg;
return (def == cxp->tc_scx->scx_use->cu_def) ? 0 : 1; return (def == cxp->tc_scx->scx_use->cu_def) ? 0 : 1;
@ -213,11 +213,11 @@ extFoundFunc(tile, dinfo, cxp)
*/ */
NodeRegion * NodeRegion *
extBasic(def, outFile) extBasic(
CellDef *def; /* Cell being extracted */ CellDef *def, /* Cell being extracted */
FILE *outFile; /* Output file */ FILE *outFile) /* Output file */
{ {
NodeRegion *nodeList, *extFindNodes(); NodeRegion *nodeList, *extFindNodes(CellDef *def, Rect *clipArea, bool subonly);
bool coupleInitialized = FALSE; bool coupleInitialized = FALSE;
TransRegion *transList, *reg; TransRegion *transList, *reg;
HashTable extCoupleHash; HashTable extCoupleHash;
@ -620,8 +620,8 @@ extBasic(def, outFile)
*/ */
void void
extSetResist(reg) extSetResist(
NodeRegion *reg; NodeRegion *reg)
{ {
int n, perim; int n, perim;
dlong area; dlong area;
@ -678,9 +678,9 @@ extSetResist(reg)
*/ */
void void
extOutputNodes(nodeList, outFile) extOutputNodes(
NodeRegion *nodeList; /* Nodes */ NodeRegion *nodeList, /* Nodes */
FILE *outFile; /* Output file */ FILE *outFile) /* Output file */
{ {
ResValue rround = ExtCurStyle->exts_resistScale / 2; ResValue rround = ExtCurStyle->exts_resistScale / 2;
CapValue finC; CapValue finC;
@ -883,8 +883,8 @@ extOutputNodes(nodeList, outFile)
*/ */
char * char *
extSubsName(node) extSubsName(
LabRegion *node; LabRegion *node)
{ {
char *subsName; char *subsName;
@ -939,9 +939,9 @@ extSubsName(node)
*/ */
void void
extMakeNodeNumPrint(buf, lreg) extMakeNodeNumPrint(
char *buf; char *buf,
LabRegion *lreg; LabRegion *lreg)
{ {
int plane = lreg->lreg_pnum; int plane = lreg->lreg_pnum;
Point *p = &lreg->lreg_ll; Point *p = &lreg->lreg_ll;
@ -990,8 +990,8 @@ extMakeNodeNumPrint(buf, lreg)
*/ */
char * char *
extNodeName(node) extNodeName(
LabRegion *node; LabRegion *node)
{ {
static char namebuf[256]; /* Big enough to hold a generated nodename */ static char namebuf[256]; /* Big enough to hold a generated nodename */
LabelList *ll; LabelList *ll;
@ -1026,9 +1026,9 @@ extNodeName(node)
*/ */
void void
extFindDuplicateLabels(def, nreg) extFindDuplicateLabels(
CellDef *def; CellDef *def,
NodeRegion *nreg; NodeRegion *nreg)
{ {
static char *badmesg = static char *badmesg =
"Label \"%s\" attached to more than one unconnected node: %s"; "Label \"%s\" attached to more than one unconnected node: %s";
@ -1112,9 +1112,9 @@ extFindDuplicateLabels(def, nreg)
*/ */
void void
ExtSortTerminals(tran, ll) ExtSortTerminals(
struct transRec *tran; struct transRec *tran,
LabelList *ll; LabelList *ll)
{ {
int nsd, changed; int nsd, changed;
TermTilePos *p1, *p2; TermTilePos *p1, *p2;
@ -1204,8 +1204,9 @@ ExtSortTerminals(tran, ll)
*/ */
bool bool
extComputeCapLW(rlengthptr, rwidthptr) extComputeCapLW(
int *rlengthptr, *rwidthptr; int *rlengthptr,
int *rwidthptr)
{ {
LinkedBoundary *lb; LinkedBoundary *lb;
Rect bbox; Rect bbox;
@ -1256,10 +1257,11 @@ extComputeCapLW(rlengthptr, rwidthptr)
*/ */
void void
extComputeEffectiveLW(rlengthptr, rwidthptr, numregions, chop) extComputeEffectiveLW(
int *rlengthptr, *rwidthptr; int *rlengthptr,
int numregions; int *rwidthptr,
float chop; int numregions,
float chop)
{ {
int i, j, p, jmax; int i, j, p, jmax;
LinkedBoundary *lb, *lb2; LinkedBoundary *lb, *lb2;
@ -1578,8 +1580,8 @@ extComputeEffectiveLW(rlengthptr, rwidthptr, numregions, chop)
*/ */
void void
extSeparateBounds(nterm) extSeparateBounds(
int nterm; /* last terminal (# terminals - 1) */ int nterm) /* last terminal (# terminals - 1) */
{ {
Rect lbrect; Rect lbrect;
LinkedBoundary *lb, *lbstart, *lbend, *lblast, *lbnext; LinkedBoundary *lb, *lbstart, *lbend, *lblast, *lbnext;
@ -1694,10 +1696,10 @@ extSeparateBounds(nterm)
*/ */
void void
extOutputParameters(def, transList, outFile) extOutputParameters(
CellDef *def; /* Cell being extracted */ CellDef *def, /* Cell being extracted */
TransRegion *transList; /* Transistor regions built up in first pass */ TransRegion *transList, /* Transistor regions built up in first pass */
FILE *outFile; /* Output file */ FILE *outFile) /* Output file */
{ {
ParamList *plist; ParamList *plist;
TransRegion *reg; TransRegion *reg;
@ -1842,14 +1844,14 @@ extOutputParameters(def, transList, outFile)
*/ */
void void
extOutputDevParams(reg, devptr, outFile, length, width, areavec, perimvec) extOutputDevParams(
TransRegion *reg; TransRegion *reg,
ExtDevice *devptr; ExtDevice *devptr,
FILE *outFile; FILE *outFile,
int length; int length,
int width; int width,
int *areavec; int *areavec,
int *perimvec; int *perimvec)
{ {
ParamList *chkParam; ParamList *chkParam;
HashEntry *he; HashEntry *he;
@ -2057,10 +2059,10 @@ typedef struct _extareaperimdata {
*/ */
ExtDevice * ExtDevice *
extDevFindParamMatch(devptr, length, width) extDevFindParamMatch(
ExtDevice *devptr; ExtDevice *devptr,
int length; /* Computed effective length of device */ int length, /* Computed effective length of device */
int width; /* Computed effective width of device */ int width) /* Computed effective width of device */
{ {
ExtDevice *newdevptr, *nextdev; ExtDevice *newdevptr, *nextdev;
int i; int i;
@ -2206,11 +2208,11 @@ extDevFindParamMatch(devptr, length, width)
*/ */
/*ARGSUSED*/ /*ARGSUSED*/
int int
extSDTileFunc(tile, dinfo, pNum, arg) extSDTileFunc(
Tile *tile; Tile *tile,
TileType dinfo; /* UNUSED */ TileType dinfo, /* UNUSED */
int pNum; int pNum,
FindRegion *arg; /* UNUSED */ FindRegion *arg) /* UNUSED */
{ {
LinkedTile *newdevtile; LinkedTile *newdevtile;
@ -2238,10 +2240,10 @@ extSDTileFunc(tile, dinfo, pNum, arg)
* ---------------------------------------------------------------------------- * ----------------------------------------------------------------------------
*/ */
int int
extTransFindTermArea(tile, dinfo, eapd) extTransFindTermArea(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
ExtAreaPerimData *eapd; ExtAreaPerimData *eapd)
{ {
extEnumTerminal(tile, dinfo, DBConnectTbl, extTermAPFunc, (ClientData)eapd); extEnumTerminal(tile, dinfo, DBConnectTbl, extTermAPFunc, (ClientData)eapd);
return 1; return 1;
@ -2279,10 +2281,10 @@ extTransFindTermArea(tile, dinfo, eapd)
*/ */
void void
extOutputDevices(def, transList, outFile) extOutputDevices(
CellDef *def; /* Cell being extracted */ CellDef *def, /* Cell being extracted */
TransRegion *transList; /* Transistor regions built up in first pass */ TransRegion *transList, /* Transistor regions built up in first pass */
FILE *outFile; /* Output file */ FILE *outFile) /* Output file */
{ {
NodeRegion *node, *subsNode; NodeRegion *node, *subsNode;
TransRegion *reg; TransRegion *reg;
@ -3308,13 +3310,13 @@ typedef struct _node_type {
} NodeAndType; } NodeAndType;
int int
extTransFindSubs(tile, dinfo, mask, def, sn, layerptr) extTransFindSubs(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
TileTypeBitMask *mask; TileTypeBitMask *mask,
CellDef *def; CellDef *def,
NodeRegion **sn; NodeRegion **sn,
TileType *layerptr; TileType *layerptr)
{ {
Rect tileArea, tileAreaPlus; Rect tileArea, tileAreaPlus;
int pNum; int pNum;
@ -3357,10 +3359,10 @@ extTransFindSubs(tile, dinfo, mask, def, sn, layerptr)
} }
int int
extTransFindSubsFunc1(tile, dinfo, noderecptr) extTransFindSubsFunc1(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
NodeAndType *noderecptr; NodeAndType *noderecptr)
{ {
TileType type; TileType type;
@ -3392,12 +3394,12 @@ extTransFindSubsFunc1(tile, dinfo, noderecptr)
} }
int int
extTransFindId(tile, dinfo, mask, def, idtypeptr) extTransFindId(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
TileTypeBitMask *mask; TileTypeBitMask *mask,
CellDef *def; CellDef *def,
TileType *idtypeptr; TileType *idtypeptr)
{ {
TileType type; TileType type;
Rect tileArea; Rect tileArea;
@ -3420,10 +3422,10 @@ extTransFindId(tile, dinfo, mask, def, idtypeptr)
} }
int int
extTransFindIdFunc1(tile, dinfo, idtypeptr) extTransFindIdFunc1(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
TileType *idtypeptr; TileType *idtypeptr)
{ {
/* /*
* ID Layer found overlapping device area, so return 1 to halt search. * ID Layer found overlapping device area, so return 1 to halt search.
@ -3454,9 +3456,9 @@ extTransFindIdFunc1(tile, dinfo, idtypeptr)
*/ */
ExtDevice * ExtDevice *
extDevFindMatch(deventry, t) extDevFindMatch(
ExtDevice *deventry; ExtDevice *deventry,
TileType t; TileType t)
{ {
ExtDevice *devptr; ExtDevice *devptr;
int i, j, k, matchflags; int i, j, k, matchflags;
@ -3539,11 +3541,11 @@ extDevFindMatch(deventry, t)
*/ */
int int
extTransTileFunc(tile, dinfo, pNum, arg) extTransTileFunc(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
int pNum; int pNum,
FindRegion *arg; FindRegion *arg)
{ {
TileTypeBitMask mask, cmask, *smask; TileTypeBitMask mask, cmask, *smask;
TileType loctype, idlayer, sublayer; TileType loctype, idlayer, sublayer;
@ -3755,9 +3757,9 @@ extTransTileFunc(tile, dinfo, pNum, arg)
*/ */
void void
extAddSharedDevice(eapd, node) extAddSharedDevice(
ExtAreaPerimData *eapd; ExtAreaPerimData *eapd,
NodeRegion *node; NodeRegion *node)
{ {
ExtNodeList *nl, *newnl; ExtNodeList *nl, *newnl;
@ -3797,10 +3799,10 @@ extAddSharedDevice(eapd, node)
*/ */
void void
extTermAPFunc(tile, dinfo, eapd) extTermAPFunc(
Tile *tile; /* Tile extending a device terminal */ Tile *tile, /* Tile extending a device terminal */
TileType dinfo; /* Split tile information */ TileType dinfo, /* Split tile information */
ExtAreaPerimData *eapd; /* Area and perimeter totals for terminal */ ExtAreaPerimData *eapd) /* Area and perimeter totals for terminal */
{ {
TileType type, tpdi; TileType type, tpdi;
Tile *tp; Tile *tp;
@ -3946,9 +3948,9 @@ extTermAPFunc(tile, dinfo, eapd)
/*ARGSUSED*/ /*ARGSUSED*/
int int
extTransPerimFunc(bp, cdata) extTransPerimFunc(
Boundary *bp; Boundary *bp,
ClientData cdata; /* UNUSED */ ClientData cdata) /* UNUSED */
{ {
TileType tinside, toutside, dinfo; TileType tinside, toutside, dinfo;
Tile *tile; Tile *tile;
@ -4226,11 +4228,11 @@ extTransPerimFunc(bp, cdata)
/*ARGSUSED*/ /*ARGSUSED*/
int int
extAnnularTileFunc(tile, dinfo, pNum, arg) extAnnularTileFunc(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
int pNum; int pNum,
FindRegion *arg; /* UNUSED */ FindRegion *arg) /* UNUSED */
{ {
TileTypeBitMask mask; TileTypeBitMask mask;
TileType loctype; TileType loctype;
@ -4248,7 +4250,7 @@ extAnnularTileFunc(tile, dinfo, pNum, arg)
mask = ExtCurStyle->exts_deviceConn[loctype]; mask = ExtCurStyle->exts_deviceConn[loctype];
TTMaskCom(&mask); TTMaskCom(&mask);
extEnumTilePerim(tile, dinfo, &mask, pNum, extSpecialPerimFunc, (ClientData) TRUE); extEnumTilePerim(tile, dinfo, &mask, pNum, (int (*)())extSpecialPerimFunc, (ClientData) TRUE);
return (0); return (0);
} }
@ -4278,11 +4280,11 @@ extAnnularTileFunc(tile, dinfo, pNum, arg)
/*ARGSUSED*/ /*ARGSUSED*/
int int
extResistorTileFunc(tile, dinfo, pNum, arg) extResistorTileFunc(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
int pNum; int pNum,
FindRegion *arg; /* UNUSED */ FindRegion *arg) /* UNUSED */
{ {
TileTypeBitMask mask; TileTypeBitMask mask;
TileType loctype; TileType loctype;
@ -4309,7 +4311,7 @@ extResistorTileFunc(tile, dinfo, pNum, arg)
TTMaskSetMask(&mask, &devptr->exts_deviceSDTypes[0]); TTMaskSetMask(&mask, &devptr->exts_deviceSDTypes[0]);
TTMaskCom(&mask); TTMaskCom(&mask);
extEnumTilePerim(tile, dinfo, &mask, pNum, extSpecialPerimFunc, (ClientData)FALSE); extEnumTilePerim(tile, dinfo, &mask, pNum, (int (*)())extSpecialPerimFunc, (ClientData)FALSE);
if (extSpecialBounds[0] != NULL) break; if (extSpecialBounds[0] != NULL) break;
devptr = devptr->exts_next; devptr = devptr->exts_next;
@ -4326,9 +4328,9 @@ extResistorTileFunc(tile, dinfo, pNum, arg)
/*----------------------------------------------------------------------*/ /*----------------------------------------------------------------------*/
int int
extSpecialPerimFunc(bp, sense) extSpecialPerimFunc(
Boundary *bp; Boundary *bp,
bool sense; bool sense)
{ {
TileType tinside, toutside, termdinfo; TileType tinside, toutside, termdinfo;
NodeRegion *termNode; NodeRegion *termNode;
@ -4586,17 +4588,17 @@ extSpecialPerimFunc(bp, sense)
*/ */
void void
extTransOutTerminal(lreg, ll, whichTerm, len, area, perim, shared, outFile) extTransOutTerminal(
LabRegion *lreg; /* Node connected to terminal */ LabRegion *lreg, /* Node connected to terminal */
LabelList *ll; /* Gate's label list */ LabelList *ll, /* Gate's label list */
int whichTerm; /* Which terminal we are processing. The gate int whichTerm, /* Which terminal we are processing. The gate
* is indicated by LL_GATEATTR. * is indicated by LL_GATEATTR.
*/ */
int len; /* Length of perimeter along terminal */ int len, /* Length of perimeter along terminal */
int area; /* Total area of terminal */ int area, /* Total area of terminal */
int perim; /* Total perimeter of terminal (includes len) */ int perim, /* Total perimeter of terminal (includes len) */
int shared; /* Number of devices sharing the terminal */ int shared, /* Number of devices sharing the terminal */
FILE *outFile; /* Output file */ FILE *outFile) /* Output file */
{ {
char *cp; char *cp;
int n; int n;
@ -4652,10 +4654,10 @@ extTransOutTerminal(lreg, ll, whichTerm, len, area, perim, shared, outFile)
*/ */
void void
extTransBad(def, tp, mesg) extTransBad(
CellDef *def; CellDef *def,
Tile *tp; Tile *tp,
char *mesg; char *mesg)
{ {
Rect r; Rect r;
@ -4686,9 +4688,9 @@ extTransBad(def, tp, mesg)
*/ */
bool bool
extLabType(text, typeMask) extLabType(
char *text; char *text,
int typeMask; int typeMask)
{ {
if (*text == '\0') if (*text == '\0')
return (FALSE); return (FALSE);
@ -4905,11 +4907,11 @@ Tile *extNodeToTile(np, et, dinfo)
*/ */
void void
extSetNodeNum(reg, plane, tile, dinfo) extSetNodeNum(
LabRegion *reg; LabRegion *reg,
int plane; int plane,
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo)
{ {
TileType type; TileType type;
@ -4973,10 +4975,10 @@ extSetNodeNum(reg, plane, tile, dinfo)
*/ */
ExtRegion * ExtRegion *
extTransFirst(tile, dinfo, arg) extTransFirst(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
FindRegion *arg; FindRegion *arg)
{ {
TransRegion *reg; TransRegion *reg;
@ -5006,11 +5008,11 @@ extTransFirst(tile, dinfo, arg)
/*ARGSUSED*/ /*ARGSUSED*/
int int
extTransEach(tile, dinfo, pNum, arg) extTransEach(
Tile *tile; Tile *tile,
TileType dinfo; /* unused, should be handled */ TileType dinfo, /* unused, should be handled */
int pNum; int pNum,
FindRegion *arg; FindRegion *arg)
{ {
TransRegion *reg = (TransRegion *) arg->fra_region; TransRegion *reg = (TransRegion *) arg->fra_region;
int area = TILEAREA(tile); int area = TILEAREA(tile);
@ -5054,12 +5056,12 @@ Stack *extNodeStack = NULL;
Rect *extNodeClipArea = NULL; Rect *extNodeClipArea = NULL;
NodeRegion * NodeRegion *
extFindNodes(def, clipArea, subonly) extFindNodes(
CellDef *def; /* Def whose nodes are being found */ CellDef *def, /* Def whose nodes are being found */
Rect *clipArea; /* If non-NULL, ignore perimeter and area that extend Rect *clipArea, /* If non-NULL, ignore perimeter and area that extend
* outside this rectangle. * outside this rectangle.
*/ */
bool subonly; /* If true, only find the substrate node, and return */ bool subonly) /* If true, only find the substrate node, and return */
{ {
int extNodeAreaFunc(); int extNodeAreaFunc();
int extSubsFunc(); int extSubsFunc();
@ -5208,10 +5210,10 @@ extFindNodes(def, clipArea, subonly)
} }
int int
extSubsFunc(tile, dinfo, arg) extSubsFunc(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
FindRegion *arg; FindRegion *arg)
{ {
int pNum; int pNum;
Rect tileArea; Rect tileArea;
@ -5245,10 +5247,10 @@ extSubsFunc(tile, dinfo, arg)
} }
int int
extSubsFunc2(tile, dinfo, arg) extSubsFunc2(
Tile *tile; Tile *tile,
TileType dinfo; // Unused TileType dinfo, // Unused
FindRegion *arg; FindRegion *arg)
{ {
int pNum; int pNum;
Rect tileArea; Rect tileArea;
@ -5285,20 +5287,20 @@ extSubsFunc2(tile, dinfo, arg)
} }
int int
extSubsFunc3(tile, dinfo, clientdata) extSubsFunc3(
Tile *tile; /* (unused) */ Tile *tile, /* (unused) */
TileType dinfo; /* (unused) */ TileType dinfo, /* (unused) */
ClientData clientdata; /* (unused) */ ClientData clientdata) /* (unused) */
{ {
/* Stops the search because something that was not space was found */ /* Stops the search because something that was not space was found */
return 1; return 1;
} }
int int
extNodeAreaFunc(tile, dinfo, arg) extNodeAreaFunc(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
FindRegion *arg; FindRegion *arg)
{ {
int tilePlaneNum, pNum, len, resistClass, n, nclasses; int tilePlaneNum, pNum, len, resistClass, n, nclasses;
dlong area; dlong area;
@ -5761,9 +5763,9 @@ donesides:
*/ */
void void
extSetCapValue(he, value) extSetCapValue(
HashEntry *he; HashEntry *he,
CapValue value; CapValue value)
{ {
if (HashGetValue(he) == NULL) if (HashGetValue(he) == NULL)
HashSetValue(he, (CapValue *) mallocMagic(sizeof(CapValue))); HashSetValue(he, (CapValue *) mallocMagic(sizeof(CapValue)));
@ -5771,8 +5773,8 @@ extSetCapValue(he, value)
} }
CapValue CapValue
extGetCapValue(he) extGetCapValue(
HashEntry *he; HashEntry *he)
{ {
if (HashGetValue(he) == NULL) if (HashGetValue(he) == NULL)
extSetCapValue(he, (CapValue) 0); extSetCapValue(he, (CapValue) 0);
@ -5795,8 +5797,8 @@ extGetCapValue(he)
*/ */
void void
extCapHashKill(ht) extCapHashKill(
HashTable *ht; HashTable *ht)
{ {
HashSearch hs; HashSearch hs;
HashEntry *he; HashEntry *he;

View File

@ -51,7 +51,7 @@ static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/
/* Forward declarations */ /* Forward declarations */
int extOutputUsesFunc(); int extOutputUsesFunc();
Plane* extCellFile(); Plane* extCellFile(CellDef *def, FILE *f, bool isTop);
void extHeader(); void extHeader();
/* /*
@ -76,10 +76,10 @@ void extHeader();
*/ */
Plane * Plane *
ExtCell(def, outName, isTop) ExtCell(
CellDef *def; /* Cell being extracted */ CellDef *def, /* Cell being extracted */
char *outName; /* Name of output file; if NULL, derive from def name */ char *outName, /* Name of output file; if NULL, derive from def name */
bool isTop; /* If TRUE, cell is the top level cell */ bool isTop) /* If TRUE, cell is the top level cell */
{ {
char *filename; char *filename;
FILE *f = NULL; FILE *f = NULL;
@ -150,16 +150,16 @@ ExtCell(def, outName, isTop)
*/ */
FILE * FILE *
ExtFileOpen(def, file, mode, prealfile) ExtFileOpen(
CellDef *def; /* Cell whose .ext file is to be written */ CellDef *def, /* Cell whose .ext file is to be written */
char *file; /* If non-NULL, open 'name'.ext; otherwise, char *file, /* If non-NULL, open 'name'.ext; otherwise,
* derive filename from 'def' as described * derive filename from 'def' as described
* above. * above.
*/ */
char *mode; /* Either "r" or "w", the mode in which the .ext char *mode, /* Either "r" or "w", the mode in which the .ext
* file is to be opened. * file is to be opened.
*/ */
char **prealfile; /* If this is non-NULL, it gets set to point to char **prealfile) /* If this is non-NULL, it gets set to point to
* a string holding the name of the .ext file. * a string holding the name of the .ext file.
*/ */
{ {
@ -287,8 +287,8 @@ ExtFileOpen(def, file, mode, prealfile)
*/ */
Plane * Plane *
extPrepSubstrate(def) extPrepSubstrate(
CellDef *def; CellDef *def)
{ {
SearchContext scx; SearchContext scx;
CellUse dummy; CellUse dummy;
@ -363,8 +363,8 @@ extPrepSubstrate(def)
*/ */
Plane * Plane *
extResPrepSubstrate(def) extResPrepSubstrate(
CellDef *def; CellDef *def)
{ {
SearchContext scx; SearchContext scx;
CellUse dummy; CellUse dummy;
@ -436,9 +436,9 @@ extResPrepSubstrate(def)
void void
ExtRevertSubstrate(def, savePlane) ExtRevertSubstrate(
CellDef *def; CellDef *def,
Plane *savePlane; Plane *savePlane)
{ {
int pNum; int pNum;
Plane *subPlane; Plane *subPlane;
@ -472,10 +472,10 @@ ExtRevertSubstrate(def, savePlane)
*/ */
Plane * Plane *
extCellFile(def, f, isTop) extCellFile(
CellDef *def; /* Def to be extracted */ CellDef *def, /* Def to be extracted */
FILE *f; /* Output to this file */ FILE *f, /* Output to this file */
bool isTop; /* TRUE if the cell is the top level cell */ bool isTop) /* TRUE if the cell is the top level cell */
{ {
NodeRegion *reg; NodeRegion *reg;
Plane *saveSub; Plane *saveSub;
@ -559,9 +559,9 @@ extCellFile(def, f, isTop)
*/ */
void void
extHeader(def, f) extHeader(
CellDef *def; /* Cell being extracted */ CellDef *def, /* Cell being extracted */
FILE *f; /* Write to this file */ FILE *f) /* Write to this file */
{ {
int n; int n;
bool propfound; bool propfound;
@ -650,9 +650,9 @@ extHeader(def, f)
*/ */
int int
extOutputUsesFunc(cu, outf) extOutputUsesFunc(
CellUse *cu; CellUse *cu,
FILE *outf; FILE *outf)
{ {
Transform *t = &cu->cu_transform; Transform *t = &cu->cu_transform;

View File

@ -166,10 +166,10 @@ void extAdjustCouple(he, c, str)
*/ */
void void
extFindCoupling(def, table, clipArea) extFindCoupling(
CellDef *def; CellDef *def,
HashTable *table; HashTable *table,
Rect *clipArea; Rect *clipArea)
{ {
const Rect *searchArea; const Rect *searchArea;
int pNum; int pNum;
@ -208,9 +208,9 @@ extFindCoupling(def, table, clipArea)
*/ */
void void
extRelocateSubstrateCoupling(table, subsnode) extRelocateSubstrateCoupling(
HashTable *table; /* Coupling capacitance hash table */ HashTable *table, /* Coupling capacitance hash table */
NodeRegion *subsnode; /* Node record for substrate */ NodeRegion *subsnode) /* Node record for substrate */
{ {
HashEntry *he; HashEntry *he;
CoupleKey *ck; CoupleKey *ck;
@ -265,9 +265,9 @@ extRelocateSubstrateCoupling(table, subsnode)
*/ */
void void
extOutputCoupling(table, outFile) extOutputCoupling(
HashTable *table; /* Coupling capacitance hash table */ HashTable *table, /* Coupling capacitance hash table */
FILE *outFile; /* Output file */ FILE *outFile) /* Output file */
{ {
HashEntry *he; HashEntry *he;
CoupleKey *ck; CoupleKey *ck;
@ -312,10 +312,10 @@ extOutputCoupling(table, outFile)
*/ */
int int
extBasicOverlap(tile, dinfo, ecs) extBasicOverlap(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
extCapStruct *ecs; extCapStruct *ecs)
{ {
int thisType; int thisType;
int pNum; int pNum;
@ -413,10 +413,10 @@ struct sideoverlap
}; };
int int
extAddOverlap(tbelow, dinfo, ecpls) extAddOverlap(
Tile *tbelow; Tile *tbelow,
TileType dinfo; /* unused, but needs to be handled */ TileType dinfo, /* unused, but needs to be handled */
extCoupleStruct *ecpls; extCoupleStruct *ecpls)
{ {
int extSubtractOverlap(), extSubtractOverlap2(); int extSubtractOverlap(), extSubtractOverlap2();
NodeRegion *rabove, *rbelow; NodeRegion *rabove, *rbelow;
@ -551,10 +551,10 @@ extAddOverlap(tbelow, dinfo, ecpls)
/* Simple overlap. The area of overlap is subtracted from ov->o_area */ /* Simple overlap. The area of overlap is subtracted from ov->o_area */
int int
extSubtractOverlap(tile, dinfo, ov) extSubtractOverlap(
Tile *tile; Tile *tile,
TileType dinfo; /* (unused) */ TileType dinfo, /* (unused) */
struct overlap *ov; struct overlap *ov)
{ {
Rect r; Rect r;
int area; int area;
@ -575,10 +575,10 @@ extSubtractOverlap(tile, dinfo, ov)
/* shielding plane. */ /* shielding plane. */
int int
extSubtractOverlap2(tile, dinfo, ov) extSubtractOverlap2(
Tile *tile; Tile *tile,
TileType dinfo; /* (unused) */ TileType dinfo, /* (unused) */
struct overlap *ov; struct overlap *ov)
{ {
TileType ttype; TileType ttype;
struct overlap ovnew; struct overlap ovnew;
@ -637,10 +637,10 @@ extSubtractOverlap2(tile, dinfo, ov)
*/ */
int int
extSubtractSideOverlap(tile, dinfo, sov) extSubtractSideOverlap(
Tile *tile; Tile *tile,
TileType dinfo; /* (unused) */ TileType dinfo, /* (unused) */
struct sideoverlap *sov; struct sideoverlap *sov)
{ {
Rect r; Rect r;
int area, dnear, dfar, length; int area, dnear, dfar, length;
@ -715,10 +715,10 @@ extSubtractSideOverlap(tile, dinfo, sov)
/* shielding plane. */ /* shielding plane. */
int int
extSubtractSideOverlap2(tile, dinfo, sov) extSubtractSideOverlap2(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
struct sideoverlap *sov; struct sideoverlap *sov)
{ {
TileType ttype; TileType ttype;
struct sideoverlap sovnew; struct sideoverlap sovnew;
@ -795,10 +795,10 @@ extSubtractSideOverlap2(tile, dinfo, sov)
*/ */
int int
extBasicCouple(tile, dinfo, ecs) extBasicCouple(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
extCapStruct *ecs; extCapStruct *ecs)
{ {
TileType ttype; TileType ttype;
@ -1070,9 +1070,9 @@ extGetBoundaryRegions(int bdir,
*/ */
int int
extAddCouple(bp, ecs) extAddCouple(
Boundary *bp; /* Boundary being considered */ Boundary *bp, /* Boundary being considered */
extCapStruct *ecs; extCapStruct *ecs)
{ {
TileType tin, tout; TileType tin, tout;
int pNum; int pNum;
@ -1203,10 +1203,10 @@ extAddCouple(bp, ecs)
*/ */
void void
extRemoveSubcap(bp, clip, esws) extRemoveSubcap(
Boundary *bp; /* Boundary with fringe capacitance */ Boundary *bp, /* Boundary with fringe capacitance */
Rect *clip; /* Area not being blocked */ Rect *clip, /* Area not being blocked */
extSidewallStruct *esws; /* Overlapping edge and plane information */ extSidewallStruct *esws) /* Overlapping edge and plane information */
{ {
int dnear, length; int dnear, length;
double snear, cfrac; double snear, cfrac;
@ -1277,10 +1277,10 @@ extRemoveSubcap(bp, clip, esws)
int int
extFindOverlap(tp, area, esws) extFindOverlap(
Tile *tp; /* Overlapped tile */ Tile *tp, /* Overlapped tile */
Rect *area; /* Area to check for coupling */ Rect *area, /* Area to check for coupling */
extSidewallStruct *esws; /* Overlapping edge and plane information */ extSidewallStruct *esws) /* Overlapping edge and plane information */
{ {
PlaneMask pMask; PlaneMask pMask;
int pNum; int pNum;
@ -1345,10 +1345,10 @@ extFindOverlap(tp, area, esws)
*/ */
int int
extSideOverlapHalo(tp, dinfo, esws) extSideOverlapHalo(
Tile *tp; /* Overlapped tile */ Tile *tp, /* Overlapped tile */
TileType dinfo; /* Split tile information */ TileType dinfo, /* Split tile information */
extSidewallStruct *esws; /* Overlapping edge and plane information */ extSidewallStruct *esws) /* Overlapping edge and plane information */
{ {
Boundary *bp = esws->bp; /* Overlapping edge */ Boundary *bp = esws->bp; /* Overlapping edge */
NodeRegion *rtp = (NodeRegion *) ExtGetRegion(tp, dinfo); NodeRegion *rtp = (NodeRegion *) ExtGetRegion(tp, dinfo);
@ -1576,10 +1576,10 @@ extSideOverlapHalo(tp, dinfo, esws)
*/ */
int int
extSideOverlap(tp, dinfo, esws) extSideOverlap(
Tile *tp; /* Overlapped tile */ Tile *tp, /* Overlapped tile */
TileType dinfo; /* Split tile information */ TileType dinfo, /* Split tile information */
extSidewallStruct *esws; /* Overlapping edge and plane information */ extSidewallStruct *esws) /* Overlapping edge and plane information */
{ {
Boundary *bp = esws->bp; /* Overlapping edge */ Boundary *bp = esws->bp; /* Overlapping edge */
NodeRegion *rtp = (NodeRegion *) ExtGetRegion(tp, dinfo); NodeRegion *rtp = (NodeRegion *) ExtGetRegion(tp, dinfo);
@ -1757,12 +1757,12 @@ extSideOverlap(tp, dinfo, esws)
*/ */
int int
extWalkTop(area, mask, func, bp, esws) extWalkTop(
Rect *area; Rect *area,
TileTypeBitMask *mask; TileTypeBitMask *mask,
int (*func)(); int (*func)(),
Boundary *bp; Boundary *bp,
extSidewallStruct *esws; extSidewallStruct *esws)
{ {
Tile *tile, *tp; Tile *tile, *tp;
TileType ttype; TileType ttype;
@ -1865,12 +1865,12 @@ extWalkTop(area, mask, func, bp, esws)
*/ */
int int
extWalkBottom(area, mask, func, bp, esws) extWalkBottom(
Rect *area; Rect *area,
TileTypeBitMask *mask; TileTypeBitMask *mask,
int (*func)(); int (*func)(),
Boundary *bp; Boundary *bp,
extSidewallStruct *esws; extSidewallStruct *esws)
{ {
Tile *tile, *tp; Tile *tile, *tp;
TileType ttype; TileType ttype;
@ -1973,12 +1973,12 @@ extWalkBottom(area, mask, func, bp, esws)
*/ */
int int
extWalkRight(area, mask, func, bp, esws) extWalkRight(
Rect *area; Rect *area,
TileTypeBitMask *mask; TileTypeBitMask *mask,
int (*func)(); int (*func)(),
Boundary *bp; Boundary *bp,
extSidewallStruct *esws; extSidewallStruct *esws)
{ {
Tile *tile, *tp; Tile *tile, *tp;
TileType ttype; TileType ttype;
@ -2081,12 +2081,12 @@ extWalkRight(area, mask, func, bp, esws)
*/ */
int int
extWalkLeft(area, mask, func, bp, esws) extWalkLeft(
Rect *area; Rect *area,
TileTypeBitMask *mask; TileTypeBitMask *mask,
int (*func)(); int (*func)(),
Boundary *bp; Boundary *bp,
extSidewallStruct *esws; extSidewallStruct *esws)
{ {
Tile *tile, *tp; Tile *tile, *tp;
TileType ttype; TileType ttype;
@ -2194,10 +2194,10 @@ extWalkLeft(area, mask, func, bp, esws)
*/ */
int int
extSideLeft(tpfar, bp, esws) extSideLeft(
Tile *tpfar; Tile *tpfar,
Boundary *bp; Boundary *bp,
extSidewallStruct *esws; extSidewallStruct *esws)
{ {
NodeRegion *rinside, *rfar; NodeRegion *rinside, *rfar;
Tile *tpnear; Tile *tpnear;
@ -2246,10 +2246,10 @@ extSideLeft(tpfar, bp, esws)
*/ */
int int
extSideRight(tpfar, bp, esws) extSideRight(
Tile *tpfar; Tile *tpfar,
Boundary *bp; Boundary *bp,
extSidewallStruct *esws; extSidewallStruct *esws)
{ {
NodeRegion *rinside, *rfar; NodeRegion *rinside, *rfar;
Tile *tpnear; Tile *tpnear;
@ -2298,10 +2298,10 @@ extSideRight(tpfar, bp, esws)
*/ */
int int
extSideTop(tpfar, bp, esws) extSideTop(
Tile *tpfar; Tile *tpfar,
Boundary *bp; Boundary *bp,
extSidewallStruct *esws; extSidewallStruct *esws)
{ {
NodeRegion *rinside, *rfar; NodeRegion *rinside, *rfar;
Tile *tpnear; Tile *tpnear;
@ -2350,10 +2350,10 @@ extSideTop(tpfar, bp, esws)
*/ */
int int
extSideBottom(tpfar, bp, esws) extSideBottom(
Tile *tpfar; Tile *tpfar,
Boundary *bp; Boundary *bp,
extSidewallStruct *esws; extSidewallStruct *esws)
{ {
NodeRegion *rinside, *rfar; NodeRegion *rinside, *rfar;
Tile *tpnear; Tile *tpnear;
@ -2403,14 +2403,15 @@ extSideBottom(tpfar, bp, esws)
*/ */
void void
extSideCommon(rinside, rfar, tpnear, tpfar, bdir, overlap, sep, extCoupleList) extSideCommon(
NodeRegion *rinside, *rfar; /* Both must be valid */ NodeRegion *rinside,
Tile *tpnear, *tpfar; /* Tiles on near and far side of edge */ NodeRegion *rfar,
int bdir; /* Boundary direction */ Tile *tpnear,
int overlap, sep; /* Overlap of this edge with original one, Tile *tpfar,
* and distance between the two. int bdir, /* Boundary direction */
*/ int overlap,
EdgeCap *extCoupleList; /* List of sidewall capacitance rules */ int sep,
EdgeCap *extCoupleList) /* List of sidewall capacitance rules */
{ {
TileType near, far; TileType near, far;
HashEntry *he; HashEntry *he;

View File

@ -71,10 +71,10 @@ bool extHardSetLabel();
*/ */
ExtRegion * ExtRegion *
extLabFirst(tile, dinfo, arg) extLabFirst(
Tile *tile; Tile *tile,
TileType dinfo; /* (unused) */ TileType dinfo, /* (unused) */
FindRegion *arg; FindRegion *arg)
{ {
TransRegion *reg; TransRegion *reg;
reg = (TransRegion *) mallocMagic((unsigned) (sizeof (TransRegion))); reg = (TransRegion *) mallocMagic((unsigned) (sizeof (TransRegion)));
@ -97,11 +97,11 @@ extLabFirst(tile, dinfo, arg)
/*ARGSUSED*/ /*ARGSUSED*/
int int
extLabEach(tile, dinfo, pNum, arg) extLabEach(
Tile *tile; Tile *tile,
TileType dinfo; /* (unused) */ TileType dinfo, /* (unused) */
int pNum; int pNum,
FindRegion *arg; FindRegion *arg)
{ {
TransRegion *reg = (TransRegion *) arg->fra_region; TransRegion *reg = (TransRegion *) arg->fra_region;
@ -157,9 +157,9 @@ extLabEach(tile, dinfo, pNum, arg)
*/ */
int int
extHardProc(scx, arg) extHardProc(
SearchContext *scx; /* Context of the search to this cell */ SearchContext *scx, /* Context of the search to this cell */
HardWay *arg; /* See above; this structure provides both HardWay *arg) /* See above; this structure provides both
* options to govern how we generate labels * options to govern how we generate labels
* and a place to store the label we return. * and a place to store the label we return.
*/ */
@ -294,13 +294,13 @@ done:
*/ */
bool bool
extHardSetLabel(scx, reg, arg) extHardSetLabel(
SearchContext *scx; /* We use scx->scx_trans to transform label SearchContext *scx, /* We use scx->scx_trans to transform label
* coordinates in the def scx->scx_use->cu_def * coordinates in the def scx->scx_use->cu_def
* up to root coordinates. * up to root coordinates.
*/ */
TransRegion *reg; /* ExtRegion with a label list */ TransRegion *reg, /* ExtRegion with a label list */
HardWay *arg; /* We will set arg->hw_label if a node HardWay *arg) /* We will set arg->hw_label if a node
* label is found on the label list of 'reg'. * label is found on the label list of 'reg'.
*/ */
{ {
@ -408,15 +408,15 @@ extHardSetLabel(scx, reg, arg)
*/ */
bool bool
extHardGenerateLabel(scx, reg, arg) extHardGenerateLabel(
SearchContext *scx; /* We use scx->scx_trans to transform the SearchContext *scx, /* We use scx->scx_trans to transform the
* generated label's coordinates up to * generated label's coordinates up to
* root coordinates. * root coordinates.
*/ */
TransRegion *reg; /* ExtRegion whose treg_ll and treg_pnum we use TransRegion *reg, /* ExtRegion whose treg_ll and treg_pnum we use
* to generate a new label name. * to generate a new label name.
*/ */
HardWay *arg; /* We set arg->hw_label to the new label */ HardWay *arg) /* We set arg->hw_label to the new label */
{ {
TerminalPath *tpath = &arg->hw_tpath; TerminalPath *tpath = &arg->hw_tpath;
char *srcp, *dstp; char *srcp, *dstp;
@ -480,9 +480,9 @@ extHardGenerateLabel(scx, reg, arg)
*/ */
void void
extHardFreeAll(def, tReg) extHardFreeAll(
CellDef *def; CellDef *def,
TransRegion *tReg; TransRegion *tReg)
{ {
TransRegion *reg; TransRegion *reg;
LabelList *ll; LabelList *ll;

View File

@ -124,10 +124,10 @@ bool extTestNMInteract(Tile *t1, TileType di1, Tile *t2, TileType di2)
*/ */
int int
extHierSubShieldFunc(tile, dinfo, clientdata) extHierSubShieldFunc(
Tile *tile; /* (unused) */ Tile *tile, /* (unused) */
TileType dinfo; /* (unused) */ TileType dinfo, /* (unused) */
ClientData clientdata; /* (unused) */ ClientData clientdata) /* (unused) */
{ {
return 1; return 1;
} }
@ -149,10 +149,11 @@ extHierSubShieldFunc(tile, dinfo, clientdata)
*/ */
void void
extHierSubstrate(ha, use, x, y) extHierSubstrate(
HierExtractArg *ha; // Contains parent def and hash table HierExtractArg *ha, // Contains parent def and hash table
CellUse *use; // Child use CellUse *use, // Child use
int x, y; // Array subscripts, or -1 if not an array int x,
int y)
{ {
NodeRegion *nodeList; NodeRegion *nodeList;
HashTable *table = &ha->ha_connHash; HashTable *table = &ha->ha_connHash;
@ -164,7 +165,7 @@ extHierSubstrate(ha, use, x, y)
Rect subArea; Rect subArea;
int pNum; int pNum;
NodeRegion *extFindNodes(); NodeRegion *extFindNodes(CellDef *def, Rect *clipArea, bool subonly);
/* Backwards compatibility with tech files that don't */ /* Backwards compatibility with tech files that don't */
/* define a substrate plane or substrate connections. */ /* define a substrate plane or substrate connections. */
@ -336,9 +337,10 @@ extHierSubstrate(ha, use, x, y)
*/ */
void void
extHierConnections(ha, cumFlat, oneFlat) extHierConnections(
HierExtractArg *ha; HierExtractArg *ha,
ExtTree *cumFlat, *oneFlat; ExtTree *cumFlat,
ExtTree *oneFlat)
{ {
int pNum; int pNum;
CellDef *sourceDef = oneFlat->et_use->cu_def; CellDef *sourceDef = oneFlat->et_use->cu_def;
@ -399,10 +401,10 @@ extHierConnections(ha, cumFlat, oneFlat)
*/ */
int int
extHierConnectFunc1(oneTile, dinfo, ha) extHierConnectFunc1(
Tile *oneTile; /* Comes from 'oneFlat' in extHierConnections */ Tile *oneTile, /* Comes from 'oneFlat' in extHierConnections */
TileType dinfo; /* Split tile information (unused) */ TileType dinfo, /* Split tile information (unused) */
HierExtractArg *ha; /* Extraction context */ HierExtractArg *ha) /* Extraction context */
{ {
CellDef *cumDef = extHierCumFlat->et_use->cu_def; CellDef *cumDef = extHierCumFlat->et_use->cu_def;
Rect r; Rect r;
@ -613,10 +615,10 @@ extHierFindTopNode(Tile *tile,
*/ */
int int
extHierConnectFunc2(cum, dinfo, ha) extHierConnectFunc2(
Tile *cum; /* Comes from extHierCumFlat->et_use->cu_def */ Tile *cum, /* Comes from extHierCumFlat->et_use->cu_def */
TileType dinfo; /* Split tile information */ TileType dinfo, /* Split tile information */
HierExtractArg *ha; /* Extraction context */ HierExtractArg *ha) /* Extraction context */
{ {
HashTable *table = &ha->ha_connHash; HashTable *table = &ha->ha_connHash;
Node *node1, *node2; Node *node1, *node2;
@ -799,10 +801,10 @@ extHierConnectFunc2(cum, dinfo, ha)
*/ */
int int
extHierConnectFunc3(cum, dinfo, ha) extHierConnectFunc3(
Tile *cum; /* Comes from extHierCumFlat->et_use->cu_def */ Tile *cum, /* Comes from extHierCumFlat->et_use->cu_def */
TileType dinfo; /* Split tile information */ TileType dinfo, /* Split tile information */
HierExtractArg *ha; /* Extraction context */ HierExtractArg *ha) /* Extraction context */
{ {
HashTable *table = &ha->ha_connHash; HashTable *table = &ha->ha_connHash;
Node *node1, *node2; Node *node1, *node2;
@ -953,9 +955,11 @@ extHierConnectFunc3(cum, dinfo, ha)
*/ */
void void
extHierAdjustments(ha, cumFlat, oneFlat, lookFlat) extHierAdjustments(
HierExtractArg *ha; HierExtractArg *ha,
ExtTree *cumFlat, *oneFlat, *lookFlat; ExtTree *cumFlat,
ExtTree *oneFlat,
ExtTree *lookFlat)
{ {
HashEntry *he, *heCum; HashEntry *he, *heCum;
int n; int n;
@ -1050,9 +1054,9 @@ extHierAdjustments(ha, cumFlat, oneFlat, lookFlat)
*/ */
void void
extOutputConns(table, outf) extOutputConns(
HashTable *table; HashTable *table,
FILE *outf; FILE *outf)
{ {
CapValue c; /* cap value */ CapValue c; /* cap value */
NodeName *nn, *nnext; NodeName *nn, *nnext;
@ -1149,8 +1153,8 @@ extOutputConns(table, outf)
*/ */
Node * Node *
extHierNewNode(he) extHierNewNode(
HashEntry *he; HashEntry *he)
{ {
int n, nclasses; int n, nclasses;
NodeName *nn; NodeName *nn;
@ -1199,10 +1203,10 @@ extHierNewNode(he)
/*ARGSUSED*/ /*ARGSUSED*/
ExtRegion * ExtRegion *
extHierLabFirst(tile, dinfo, arg) extHierLabFirst(
Tile *tile; Tile *tile,
TileType dinfo; /* (unused) */ TileType dinfo, /* (unused) */
FindRegion *arg; FindRegion *arg)
{ {
LabRegion *new; LabRegion *new;
@ -1220,11 +1224,11 @@ extHierLabFirst(tile, dinfo, arg)
/*ARGSUSED*/ /*ARGSUSED*/
int int
extHierLabEach(tile, dinfo, pNum, arg) extHierLabEach(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
int pNum; int pNum,
FindRegion *arg; FindRegion *arg)
{ {
LabRegion *reg; LabRegion *reg;
@ -1307,8 +1311,8 @@ extHierNewOne()
*/ */
void void
extHierFreeOne(et) extHierFreeOne(
ExtTree *et; ExtTree *et)
{ {
if (ExtOptions & EXT_DOCOUPLING) if (ExtOptions & EXT_DOCOUPLING)
extCapHashKill(&et->et_coupleHash); extCapHashKill(&et->et_coupleHash);

View File

@ -87,13 +87,13 @@ int extInterSubtreePaint();
*/ */
void void
ExtFindInteractions(def, halo, bloatby, resultPlane) ExtFindInteractions(
CellDef *def; /* Find interactions among children of def */ CellDef *def, /* Find interactions among children of def */
int halo; /* Interaction is elements closer than halo */ int halo, /* Interaction is elements closer than halo */
int bloatby; /* Bloat each interaction area by this amount when int bloatby, /* Bloat each interaction area by this amount when
* painting into resultPlane. * painting into resultPlane.
*/ */
Plane *resultPlane; /* Paint interaction areas into this plane */ Plane *resultPlane) /* Paint interaction areas into this plane */
{ {
SearchContext scx; SearchContext scx;
@ -129,9 +129,9 @@ ExtFindInteractions(def, halo, bloatby, resultPlane)
} }
int int
extInterSubtreePaint(scx, def) extInterSubtreePaint(
SearchContext *scx; SearchContext *scx,
CellDef *def; CellDef *def)
{ {
Rect r; Rect r;
int pNum; int pNum;
@ -165,8 +165,8 @@ extInterSubtreePaint(scx, def)
*/ */
int int
extInterSubtree(scx) extInterSubtree(
SearchContext *scx; SearchContext *scx)
{ {
CellUse *oldUse = extInterUse; CellUse *oldUse = extInterUse;
SearchContext parentScx; SearchContext parentScx;
@ -185,8 +185,9 @@ extInterSubtree(scx)
} }
int int
extInterSubtreeClip(overlapScx, scx) extInterSubtreeClip(
SearchContext *overlapScx, *scx; SearchContext *overlapScx,
SearchContext *scx)
{ {
Rect r, r2; Rect r, r2;
@ -227,11 +228,12 @@ extInterSubtreeClip(overlapScx, scx)
*/ */
int int
extInterSubtreeElement(use, trans, x, y, r) extInterSubtreeElement(
CellUse *use; CellUse *use,
Transform *trans; Transform *trans,
int x, y; int x,
Rect *r; int y,
Rect *r)
{ {
SearchContext scx; SearchContext scx;
Transform tinv; Transform tinv;
@ -270,10 +272,10 @@ extInterSubtreeElement(use, trans, x, y, r)
*/ */
int int
extInterSubtreeTile(tile, dinfo, cxp) extInterSubtreeTile(
Tile *tile; Tile *tile,
TileType dinfo; /* (unused) */ TileType dinfo, /* (unused) */
TreeContext *cxp; TreeContext *cxp)
{ {
SearchContext newscx; SearchContext newscx;
Rect r; Rect r;
@ -312,8 +314,8 @@ extInterSubtreeTile(tile, dinfo, cxp)
*/ */
int int
extInterOverlapSubtree(scx) extInterOverlapSubtree(
SearchContext *scx; SearchContext *scx)
{ {
if (extInterUse == scx->scx_use) if (extInterUse == scx->scx_use)
return (2); return (2);
@ -343,10 +345,10 @@ extInterOverlapSubtree(scx)
*/ */
int int
extInterOverlapTile(tile, dinfo, cxp) extInterOverlapTile(
Tile *tile; Tile *tile,
TileType dinfo; /* (unused) */ TileType dinfo, /* (unused) */
TreeContext *cxp; TreeContext *cxp)
{ {
SearchContext *scx = cxp->tc_scx; SearchContext *scx = cxp->tc_scx;
Rect r, rootr; Rect r, rootr;
@ -410,14 +412,14 @@ extInterOverlapTile(tile, dinfo, cxp)
*/ */
int int
extTreeSrPaintArea(scx, func, cdarg) extTreeSrPaintArea(
SearchContext *scx; /* Pointer to search context specifying SearchContext *scx, /* Pointer to search context specifying
* a cell use to search, an area in the * a cell use to search, an area in the
* coordinates of the cell's def, and a * coordinates of the cell's def, and a
* transform back to "root" coordinates. * transform back to "root" coordinates.
*/ */
int (*func)(); /* Function to apply at each qualifying tile */ int (*func)(), /* Function to apply at each qualifying tile */
ClientData cdarg; /* Client data for above function */ ClientData cdarg) /* Client data for above function */
{ {
int extTreeSrFunc(); int extTreeSrFunc();
CellDef *def = scx->scx_use->cu_def; CellDef *def = scx->scx_use->cu_def;
@ -455,9 +457,9 @@ extTreeSrPaintArea(scx, func, cdarg)
*/ */
int int
extTreeSrFunc(scx, fp) extTreeSrFunc(
SearchContext *scx; SearchContext *scx,
TreeFilter *fp; TreeFilter *fp)
{ {
CellDef *def = scx->scx_use->cu_def; CellDef *def = scx->scx_use->cu_def;
TreeContext context; TreeContext context;

View File

@ -144,8 +144,8 @@ void extPathFloodTile();
*/ */
void void
ExtSetDriver(name) ExtSetDriver(
char *name; char *name)
{ {
HashEntry *he; HashEntry *he;
@ -154,8 +154,8 @@ ExtSetDriver(name)
} }
void void
ExtSetReceiver(name) ExtSetReceiver(
char *name; char *name)
{ {
HashEntry *he; HashEntry *he;
@ -238,12 +238,12 @@ extLengthInit()
*/ */
void void
extLength(rootUse, f) extLength(
CellUse *rootUse; /* The names stored in the driver and receiver tables CellUse *rootUse, /* The names stored in the driver and receiver tables
* should all be relative to this root cell. It is * should all be relative to this root cell. It is
* the responsibility of the caller to ensure this. * the responsibility of the caller to ensure this.
*/ */
FILE *f; /* Open output file */ FILE *f) /* Open output file */
{ {
Label *dList, *rList, *dLab, *rLab; Label *dList, *rList, *dLab, *rLab;
int min, max; int min, max;
@ -346,9 +346,9 @@ extLength(rootUse, f)
*/ */
Label * Label *
extLengthYank(use, labList) extLengthYank(
CellUse *use; /* Cell whose material is to be traced */ CellUse *use, /* Cell whose material is to be traced */
Label *labList; /* List of labels whose attached net is to be traced */ Label *labList) /* List of labels whose attached net is to be traced */
{ {
SearchContext scx; SearchContext scx;
char mesg[512]; char mesg[512];
@ -434,10 +434,10 @@ extLengthYank(use, labList)
*/ */
int int
extLengthLabels(tile, dinfo, rootUse) extLengthLabels(
Tile *tile; /* Some tile in extPathDef */ Tile *tile, /* Some tile in extPathDef */
TileType dinfo; /* Split tile information (unused) */ TileType dinfo, /* Split tile information (unused) */
CellUse *rootUse; /* The original root cell */ CellUse *rootUse) /* The original root cell */
{ {
char name[MAXNAMESIZE]; char name[MAXNAMESIZE];
TileTypeBitMask mask; TileTypeBitMask mask;
@ -486,10 +486,10 @@ extLengthLabels(tile, dinfo, rootUse)
*/ */
int int
extLengthLabelsFunc(scx, label, tpath) extLengthLabelsFunc(
SearchContext *scx; /* Where in the search tree we are */ SearchContext *scx, /* Where in the search tree we are */
Label *label; /* The label itself */ Label *label, /* The label itself */
TerminalPath *tpath; /* Identifies hierarchical prefix for label. TerminalPath *tpath) /* Identifies hierarchical prefix for label.
* The full hierarchical pathname will be the * The full hierarchical pathname will be the
* concatenation of the string tpath->tp_first * concatenation of the string tpath->tp_first
* and the string label->lab_text. * and the string label->lab_text.
@ -544,9 +544,9 @@ extLengthLabelsFunc(scx, label, tpath)
*/ */
Label * Label *
extPathLabel(use, text) extPathLabel(
CellUse *use; CellUse *use,
char *text; char *text)
{ {
int extPathLabelFunc(); int extPathLabelFunc();
Label *lab; Label *lab;
@ -578,11 +578,11 @@ extPathLabel(use, text)
*/ */
int int
extPathLabelFunc(rect, text, childLab, pLabList) extPathLabelFunc(
Rect *rect; /* Transformed location of the label */ Rect *rect, /* Transformed location of the label */
char *text; /* Full hierarchical name of the label */ char *text, /* Full hierarchical name of the label */
Label *childLab; /* The label itself */ Label *childLab, /* The label itself */
Label **pLabList; /* Cons the newly allocated label onto the front of Label **pLabList) /* Cons the newly allocated label onto the front of
* this list. * this list.
*/ */
{ {
@ -630,9 +630,11 @@ extPathLabelFunc(rect, text, childLab, pLabList)
*/ */
void void
extPathPairDistance(lab1, lab2, pMin, pMax) extPathPairDistance(
Label *lab1, *lab2; Label *lab1,
int *pMin, *pMax; Label *lab2,
int *pMin,
int *pMax)
{ {
struct extPathArg epa; struct extPathArg epa;
TileTypeBitMask mask; TileTypeBitMask mask;
@ -694,8 +696,8 @@ extPathPairDistance(lab1, lab2, pMin, pMax)
*/ */
int int
extPathResetClient(tile) extPathResetClient(
Tile *tile; Tile *tile)
{ {
TiSetClient(tile, CLIENTDEFAULT); TiSetClient(tile, CLIENTDEFAULT);
return (0); return (0);
@ -728,10 +730,10 @@ extPathResetClient(tile)
*/ */
int int
extPathPairFunc(tile, dinfo, epa) extPathPairFunc(
Tile *tile; Tile *tile,
TileType dinfo; // Unused TileType dinfo, // Unused
struct extPathArg *epa; struct extPathArg *epa)
{ {
Point startPoint; Point startPoint;
Rect r; Rect r;
@ -772,11 +774,11 @@ extPathPairFunc(tile, dinfo, epa)
*/ */
void void
extPathFlood(tile, p, distance, epa) extPathFlood(
Tile *tile; /* Tile whose neighbors we are to visit */ Tile *tile, /* Tile whose neighbors we are to visit */
Point *p; /* Usually at center of 'tile' */ Point *p, /* Usually at center of 'tile' */
int distance; /* Distance to 'p' */ int distance, /* Distance to 'p' */
struct extPathArg *epa; /* Update epa_min and epa_max when we reach struct extPathArg *epa) /* Update epa_min and epa_max when we reach
* the destination epa_lab2. * the destination epa_lab2.
*/ */
{ {
@ -911,10 +913,10 @@ extPathFlood(tile, p, distance, epa)
} }
int int
extPathFloodFunc(dstTile, dinfo, epfa) extPathFloodFunc(
Tile *dstTile; Tile *dstTile,
TileType dinfo; // Unused TileType dinfo, // Unused
struct extPathFloodArg *epfa; struct extPathFloodArg *epfa)
{ {
Rect srcRect, dstRect; Rect srcRect, dstRect;
Point dstPoint, *p; Point dstPoint, *p;
@ -970,12 +972,12 @@ extPathFloodFunc(dstTile, dinfo, epfa)
*/ */
void void
extPathFloodTile(srcTile, srcPoint, srcDist, dstTile, epa) extPathFloodTile(
Tile *srcTile; /* Tile through which we're propagating */ Tile *srcTile, /* Tile through which we're propagating */
Point *srcPoint; /* Point inside or on srcTile */ Point *srcPoint, /* Point inside or on srcTile */
int srcDist; /* Distance to srcPoint so far */ int srcDist, /* Distance to srcPoint so far */
Tile *dstTile; /* Tile on border of srcTile */ Tile *dstTile, /* Tile on border of srcTile */
struct extPathArg *epa; struct extPathArg *epa)
{ {
Rect srcRect, dstRect; Rect srcRect, dstRect;
Point dstPoint; Point dstPoint;
@ -1017,10 +1019,11 @@ extPathFloodTile(srcTile, srcPoint, srcDist, dstTile, epa)
*/ */
int int
extPathTileDist(p1, p2, tile, oldDist) extPathTileDist(
Point *p1, *p2; Point *p1,
Tile *tile; Point *p2,
int oldDist; Tile *tile,
int oldDist)
{ {
int newDist; int newDist;

View File

@ -88,10 +88,10 @@ Stack *extDefStack;
int extDefInitFunc(CellDef *, ClientData); /* UNUSED */ int extDefInitFunc(CellDef *, ClientData); /* UNUSED */
void extDefPush(); void extDefPush();
void extDefIncremental(); void extDefIncremental();
void extParents(); void extParents(CellUse *use, bool doExtract);
void extDefParentFunc(); void extDefParentFunc();
void extDefParentAreaFunc(); void extDefParentAreaFunc();
void extExtractStack(); void extExtractStack(Stack *stack, bool doExtract, CellDef *rootDef);
bool extContainsGeometry(); bool extContainsGeometry();
int extContainsCellFunc(CellUse *use, ClientData cdata); /* cb_database_srcellplanearea_t (const CellUse *allButUse) */ int extContainsCellFunc(CellUse *use, ClientData cdata); /* cb_database_srcellplanearea_t (const CellUse *allButUse) */
@ -173,9 +173,9 @@ ExtInit()
*/ */
int int
extIsUsedFunc(use, clientData) extIsUsedFunc(
CellUse *use; CellUse *use,
ClientData clientData; /* unused */ ClientData clientData) /* unused */
{ {
CellDef *def = use->cu_def; CellDef *def = use->cu_def;
@ -197,10 +197,10 @@ extIsUsedFunc(use, clientData)
*/ */
int int
extEnumFunc(tile, dinfo, clientdata) extEnumFunc(
Tile *tile; /* (unused) */ Tile *tile, /* (unused) */
TileType dinfo; /* (unused) */ TileType dinfo, /* (unused) */
ClientData clientdata; /* (unused) */ ClientData clientdata) /* (unused) */
{ {
return 1; return 1;
} }
@ -212,9 +212,9 @@ extEnumFunc(tile, dinfo, clientdata)
*/ */
int int
extDefListFunc(use, defList) extDefListFunc(
CellUse *use; CellUse *use,
LinkedDef **defList; LinkedDef **defList)
{ {
CellDef *def = use->cu_def; CellDef *def = use->cu_def;
LinkedDef *newLD; LinkedDef *newLD;
@ -270,9 +270,9 @@ extDefListFunc(use, defList)
*/ */
int int
extDefListFuncIncremental(use, defList) extDefListFuncIncremental(
CellUse *use; CellUse *use,
LinkedDef **defList; LinkedDef **defList)
{ {
CellDef *def = use->cu_def; CellDef *def = use->cu_def;
LinkedDef *newLD; LinkedDef *newLD;
@ -346,8 +346,8 @@ extDefListFuncIncremental(use, defList)
*/ */
void void
ExtAll(rootUse) ExtAll(
CellUse *rootUse; CellUse *rootUse)
{ {
LinkedDef *defList = NULL; LinkedDef *defList = NULL;
CellDef *err_def; CellDef *err_def;
@ -397,9 +397,9 @@ ExtAll(rootUse)
*/ */
/*ARGSUSED*/ /*ARGSUSED*/
int int
extDefInitFunc(def, cdata) extDefInitFunc(
CellDef *def; CellDef *def,
ClientData cdata; /* UNUSED */ ClientData cdata) /* UNUSED */
{ {
def->cd_client = (ClientData) 0; def->cd_client = (ClientData) 0;
return (0); return (0);
@ -411,8 +411,8 @@ extDefInitFunc(def, cdata)
*/ */
void void
extDefPush(defList) extDefPush(
LinkedDef *defList; LinkedDef *defList)
{ {
while (defList != NULL) while (defList != NULL)
{ {
@ -452,9 +452,9 @@ extDefPush(defList)
*/ */
void void
ExtUnique(rootUse, option) ExtUnique(
CellUse *rootUse; CellUse *rootUse,
int option; int option)
{ {
CellDef *def, *err_def; CellDef *def, *err_def;
LinkedDef *defList = NULL; LinkedDef *defList = NULL;
@ -545,23 +545,23 @@ ExtUnique(rootUse, option)
*/ */
void void
ExtParents(use) ExtParents(
CellUse *use; CellUse *use)
{ {
extParents(use, TRUE); extParents(use, TRUE);
} }
void void
ExtShowParents(use) ExtShowParents(
CellUse *use; CellUse *use)
{ {
extParents(use, FALSE); extParents(use, FALSE);
} }
void void
extParents(use, doExtract) extParents(
CellUse *use; CellUse *use,
bool doExtract; /* If TRUE, we extract; if FALSE, we print */ bool doExtract) /* If TRUE, we extract; if FALSE, we print */
{ {
LinkedDef *defList = NULL; LinkedDef *defList = NULL;
CellDef *def; CellDef *def;
@ -632,8 +632,8 @@ extParents(use, doExtract)
*/ */
void void
extDefParentFunc(def) extDefParentFunc(
CellDef *def; CellDef *def)
{ {
CellUse *parent; CellUse *parent;
@ -667,10 +667,10 @@ extDefParentFunc(def)
*/ */
void void
ExtParentArea(use, changedArea, doExtract) ExtParentArea(
CellUse *use; /* Use->cu_def changed; extract its affected parents */ CellUse *use, /* Use->cu_def changed; extract its affected parents */
Rect *changedArea; /* Area changed in use->cu_def coordinates */ Rect *changedArea, /* Area changed in use->cu_def coordinates */
bool doExtract; /* If TRUE, we extract; if FALSE, we just print names bool doExtract) /* If TRUE, we extract; if FALSE, we just print names
* of the cells we would extract. * of the cells we would extract.
*/ */
{ {
@ -704,11 +704,11 @@ ExtParentArea(use, changedArea, doExtract)
*/ */
void void
extDefParentAreaFunc(def, baseDef, allButUse, area) extDefParentAreaFunc(
CellDef *def; CellDef *def,
CellDef *baseDef; CellDef *baseDef,
CellUse *allButUse; CellUse *allButUse,
Rect *area; Rect *area)
{ {
int x, y, xoff, yoff; int x, y, xoff, yoff;
CellUse *parent; CellUse *parent;
@ -758,10 +758,10 @@ extDefParentAreaFunc(def, baseDef, allButUse, area)
*/ */
void void
ExtractOneCell(def, outName, doLength) ExtractOneCell(
CellDef *def; /* Cell being extracted */ CellDef *def, /* Cell being extracted */
char *outName; /* Name of output file; if NULL, derive from def name */ char *outName, /* Name of output file; if NULL, derive from def name */
bool doLength; /* If TRUE, extract pathlengths from drivers to bool doLength) /* If TRUE, extract pathlengths from drivers to
* receivers (the names are stored in ExtLength.c). * receivers (the names are stored in ExtLength.c).
* Should only be TRUE for the root cell in a * Should only be TRUE for the root cell in a
* hierarchy. * hierarchy.
@ -842,10 +842,10 @@ ExtractOneCell(def, outName, doLength)
/* ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------- */
bool bool
extContainsGeometry(def, allButUse, area) extContainsGeometry(
CellDef *def; CellDef *def,
CellUse *allButUse; CellUse *allButUse,
Rect *area; Rect *area)
{ {
int extContainsPaintFunc(); int extContainsPaintFunc();
int pNum; int pNum;
@ -904,8 +904,8 @@ extContainsPaintFunc(
*/ */
void void
ExtIncremental(rootUse) ExtIncremental(
CellUse *rootUse; CellUse *rootUse)
{ {
LinkedDef *defList = NULL; LinkedDef *defList = NULL;
CellDef *err_def; CellDef *err_def;
@ -954,8 +954,8 @@ ExtIncremental(rootUse)
*/ */
bool bool
extTimestampMisMatch(def) extTimestampMisMatch(
CellDef *def; CellDef *def)
{ {
char line[256]; char line[256];
FILE *extFile; FILE *extFile;
@ -1002,10 +1002,10 @@ closeit:
*/ */
void void
extExtractStack(stack, doExtract, rootDef) extExtractStack(
Stack *stack; Stack *stack,
bool doExtract; bool doExtract,
CellDef *rootDef; CellDef *rootDef)
{ {
int errorcnt = 0, warnings = 0; int errorcnt = 0, warnings = 0;
bool first = TRUE; bool first = TRUE;

View File

@ -71,11 +71,11 @@ static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/
*/ */
int int
ExtFindNeighbors(tile, dinfo, tilePlaneNum, arg) ExtFindNeighbors(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
int tilePlaneNum; int tilePlaneNum,
FindRegion *arg; FindRegion *arg)
{ {
TileTypeBitMask *connTo = arg->fra_connectsTo; TileTypeBitMask *connTo = arg->fra_connectsTo;
Tile *tp; Tile *tp;
@ -376,10 +376,10 @@ fail:
*/ */
int int
extNbrPushFunc(tile, dinfo, pla) extNbrPushFunc(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
PlaneAndArea *pla; PlaneAndArea *pla)
{ {
Rect *tileArea; Rect *tileArea;
Rect r; Rect r;

View File

@ -139,13 +139,13 @@ ExtGetRegion(Tile *tp, /* Tile to get region record from */
*/ */
ExtRegion * ExtRegion *
ExtFindRegions(def, area, mask, connectsTo, first, each) ExtFindRegions(
CellDef *def; /* Cell definition being searched */ CellDef *def, /* Cell definition being searched */
Rect *area; /* Area to search initially for tiles */ Rect *area, /* Area to search initially for tiles */
TileTypeBitMask *mask; /* In the initial area search, only visit TileTypeBitMask *mask, /* In the initial area search, only visit
* tiles whose types are in this mask. * tiles whose types are in this mask.
*/ */
TileTypeBitMask *connectsTo;/* Connectivity table for determining regions. TileTypeBitMask *connectsTo,/* Connectivity table for determining regions.
* If t1 and t2 are the types of adjacent * If t1 and t2 are the types of adjacent
* tiles, then t1 and t2 belong to the same * tiles, then t1 and t2 belong to the same
* region iff: * region iff:
@ -155,8 +155,8 @@ ExtFindRegions(def, area, mask, connectsTo, first, each)
* so this is the same as: * so this is the same as:
* TTMaskHasType(&connectsTo[t2], t1) * TTMaskHasType(&connectsTo[t2], t1)
*/ */
ExtRegion * (*first)(); /* Applied to first tile in region */ ExtRegion * (*first)(), /* Applied to first tile in region */
int (*each)(); /* Applied to each tile in region */ int (*each)()) /* Applied to each tile in region */
{ {
FindRegion arg; FindRegion arg;
int extRegionAreaFunc(); int extRegionAreaFunc();
@ -206,10 +206,10 @@ ExtFindRegions(def, area, mask, connectsTo, first, each)
*/ */
int int
extRegionAreaFunc(tile, dinfo, arg) extRegionAreaFunc(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
FindRegion *arg; FindRegion *arg)
{ {
/* Allocate a new region */ /* Allocate a new region */
if (arg->fra_first) if (arg->fra_first)
@ -251,11 +251,11 @@ extRegionAreaFunc(tile, dinfo, arg)
*/ */
LabelList * LabelList *
ExtLabelRegions(def, connTo, nodeList, clipArea) ExtLabelRegions(
CellDef *def; /* Cell definition being labelled */ CellDef *def, /* Cell definition being labelled */
TileTypeBitMask *connTo; /* Connectivity table (see above) */ TileTypeBitMask *connTo, /* Connectivity table (see above) */
NodeRegion **nodeList; /* Node list to add to (or NULL) */ NodeRegion **nodeList, /* Node list to add to (or NULL) */
Rect *clipArea; /* Area to search for sticky labels */ Rect *clipArea) /* Area to search for sticky labels */
{ {
static Point offsets[] = { { 0, 0 }, { 0, -1 }, { -1, -1 }, { -1, 0 } }; static Point offsets[] = { { 0, 0 }, { 0, -1 }, { -1, -1 }, { -1, 0 } };
LabelList *ll; LabelList *ll;
@ -431,10 +431,10 @@ ExtLabelRegions(def, connTo, nodeList, clipArea)
*/ */
void void
ExtLabelOneRegion(def, connTo, reg) ExtLabelOneRegion(
CellDef *def; /* Cell definition being labelled */ CellDef *def, /* Cell definition being labelled */
TileTypeBitMask *connTo; /* Connectivity table (see above) */ TileTypeBitMask *connTo, /* Connectivity table (see above) */
NodeRegion *reg; /* The region whose labels we want */ NodeRegion *reg) /* The region whose labels we want */
{ {
static Point offsets[] = { { 0, 0 }, { 0, -1 }, { -1, -1 }, { -1, 0 } }; static Point offsets[] = { { 0, 0 }, { 0, -1 }, { -1, -1 }, { -1, 0 } };
LabelList *ll; LabelList *ll;
@ -519,9 +519,9 @@ ExtLabelOneRegion(def, connTo, reg)
*/ */
void void
ExtResetTiles(def, resetTo) ExtResetTiles(
CellDef *def; CellDef *def,
ClientData resetTo; /* New value for ti_client */ ClientData resetTo) /* New value for ti_client */
{ {
int pNum; int pNum;
@ -553,8 +553,8 @@ ExtResetTiles(def, resetTo)
*/ */
void void
ExtFreeRegions(regList) ExtFreeRegions(
ExtRegion *regList; /* List of regions to be freed */ ExtRegion *regList) /* List of regions to be freed */
{ {
ExtRegion *reg; ExtRegion *reg;
@ -565,8 +565,8 @@ ExtFreeRegions(regList)
} }
void void
ExtFreeLabRegions(regList) ExtFreeLabRegions(
LabRegion *regList; /* List of regions to be freed */ LabRegion *regList) /* List of regions to be freed */
{ {
LabRegion *lreg; LabRegion *lreg;
LabelList *ll; LabelList *ll;
@ -584,8 +584,8 @@ ExtFreeLabRegions(regList)
} }
void void
ExtFreeHierLabRegions(regList) ExtFreeHierLabRegions(
ExtRegion *regList; /* List of regions to be freed */ ExtRegion *regList) /* List of regions to be freed */
{ {
ExtRegion *reg; ExtRegion *reg;
LabelList *ll; LabelList *ll;

View File

@ -90,7 +90,7 @@ bool extFirstPass;
ExtTree *extSubList = (ExtTree *) NULL; ExtTree *extSubList = (ExtTree *) NULL;
/* Forward declarations of filter functions */ /* Forward declarations of filter functions */
char *extSubtreeTileToNode(); char *extSubtreeTileToNode(Tile *tp, TileType dinfo, int pNum, ExtTree *et, HierExtractArg *ha, bool doHard);
int extSubtreeFunc(); int extSubtreeFunc();
int extSubstrateFunc(); int extSubstrateFunc();
int extConnFindFunc(); int extConnFindFunc();
@ -115,9 +115,9 @@ void extSubtreeHardSearch();
*/ */
int int
extClearUseFlags(use, clientData) extClearUseFlags(
CellUse *use; CellUse *use,
ClientData clientData; ClientData clientData)
{ {
use->cu_flags &= ~CU_SUB_EXTRACTED; use->cu_flags &= ~CU_SUB_EXTRACTED;
return 0; return 0;
@ -161,10 +161,10 @@ extClearUseFlags(use, clientData)
#define RECTAREA(r) (((r)->r_xtop-(r)->r_xbot) * ((r)->r_ytop-(r)->r_ybot)) #define RECTAREA(r) (((r)->r_xtop-(r)->r_xbot) * ((r)->r_ytop-(r)->r_ybot))
void void
extSubtree(parentUse, reg, f) extSubtree(
CellUse *parentUse; CellUse *parentUse,
NodeRegion *reg; /* Node regions of the parent cell */ NodeRegion *reg, /* Node regions of the parent cell */
FILE *f; FILE *f)
{ {
int extSubtreeInterFunc(); int extSubtreeInterFunc();
CellDef *def = parentUse->cu_def; CellDef *def = parentUse->cu_def;
@ -200,7 +200,7 @@ extSubtree(parentUse, reg, f)
ha.ha_outf = f; ha.ha_outf = f;
ha.ha_parentUse = parentUse; ha.ha_parentUse = parentUse;
ha.ha_parentReg = reg; ha.ha_parentReg = reg;
ha.ha_nodename = extSubtreeTileToNode; ha.ha_nodename = (char *(*)()) extSubtreeTileToNode;
ha.ha_interArea = GeoNullRect; ha.ha_interArea = GeoNullRect;
ha.ha_cumFlat.et_use = extYuseCum; ha.ha_cumFlat.et_use = extYuseCum;
HashInit(&ha.ha_connHash, 32, 0); HashInit(&ha.ha_connHash, 32, 0);
@ -361,10 +361,10 @@ done:
#ifdef exactinteractions #ifdef exactinteractions
int int
extSubtreeCopyPlane(tile, dinfo, plane) extSubtreeCopyPlane(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
Plane *plane; Plane *plane)
{ {
Rect r; Rect r;
@ -375,10 +375,10 @@ extSubtreeCopyPlane(tile, dinfo, plane)
} }
int int
extSubtreeShrinkPlane(tile, dinfo, plane) extSubtreeShrinkPlane(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
Plane *plane; Plane *plane)
{ {
Rect r; Rect r;
@ -392,10 +392,10 @@ extSubtreeShrinkPlane(tile, dinfo, plane)
} }
int int
extSubtreeInterFunc(tile, dinfo, ha) extSubtreeInterFunc(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
HierExtractArg *ha; HierExtractArg *ha)
{ {
TITORECT(tile, &ha->ha_interArea); TITORECT(tile, &ha->ha_interArea);
ha->ha_clipArea = ha->ha_interArea; ha->ha_clipArea = ha->ha_interArea;
@ -450,8 +450,8 @@ extSubtreeInterFunc(tile, dinfo, ha)
*/ */
void void
extSubtreeInteraction(ha) extSubtreeInteraction(
HierExtractArg *ha; /* Context for hierarchical extraction */ HierExtractArg *ha) /* Context for hierarchical extraction */
{ {
CellDef *oneDef, *cumDef = ha->ha_cumFlat.et_use->cu_def; CellDef *oneDef, *cumDef = ha->ha_cumFlat.et_use->cu_def;
ExtTree *oneFlat, *nextFlat; ExtTree *oneFlat, *nextFlat;
@ -638,8 +638,8 @@ extSubtreeInteraction(ha)
*/ */
void void
extSubtreeAdjustInit(ha) extSubtreeAdjustInit(
HierExtractArg *ha; HierExtractArg *ha)
{ {
NodeRegion *np; NodeRegion *np;
NodeName *nn; NodeName *nn;
@ -690,8 +690,8 @@ extSubtreeAdjustInit(ha)
*/ */
void void
extSubtreeOutputCoupling(ha) extSubtreeOutputCoupling(
HierExtractArg *ha; HierExtractArg *ha)
{ {
CapValue cap; CapValue cap;
CoupleKey *ck; CoupleKey *ck;
@ -736,10 +736,10 @@ extSubtreeOutputCoupling(ha)
*/ */
int int
extFoundProc(tile, dinfo, clientData) extFoundProc(
Tile *tile; Tile *tile,
TileType dinfo; TileType dinfo,
ClientData clientData; ClientData clientData)
{ {
return 1; return 1;
} }
@ -767,9 +767,9 @@ extFoundProc(tile, dinfo, clientData)
*/ */
int int
extSubtreeFunc(scx, ha) extSubtreeFunc(
SearchContext *scx; SearchContext *scx,
HierExtractArg *ha; HierExtractArg *ha)
{ {
CellUse *cumUse = ha->ha_cumFlat.et_use; CellUse *cumUse = ha->ha_cumFlat.et_use;
CellUse *use = scx->scx_use; CellUse *use = scx->scx_use;
@ -985,9 +985,9 @@ extSubtreeFunc(scx, ha)
*/ */
int int
extSubstrateFunc(scx, ha) extSubstrateFunc(
SearchContext *scx; SearchContext *scx,
HierExtractArg *ha; HierExtractArg *ha)
{ {
CellUse *use = scx->scx_use; CellUse *use = scx->scx_use;
int x, y; int x, y;
@ -1065,13 +1065,13 @@ extSubstrateFunc(scx, ha)
*/ */
char * char *
extSubtreeTileToNode(tp, dinfo, pNum, et, ha, doHard) extSubtreeTileToNode(
Tile *tp; /* Tile whose node name is to be found */ Tile *tp, /* Tile whose node name is to be found */
TileType dinfo; /* Split tile information */ TileType dinfo, /* Split tile information */
int pNum; /* Plane of the tile */ int pNum, /* Plane of the tile */
ExtTree *et; /* Yank buffer to search */ ExtTree *et, /* Yank buffer to search */
HierExtractArg *ha; /* Extraction context */ HierExtractArg *ha, /* Extraction context */
bool doHard; /* If TRUE, we look up this node's name the hard way bool doHard) /* If TRUE, we look up this node's name the hard way
* if we can't find it any other way; otherwise, we * if we can't find it any other way; otherwise, we
* return NULL if we can't find the node's name. * return NULL if we can't find the node's name.
*/ */
@ -1175,10 +1175,10 @@ extSubtreeTileToNode(tp, dinfo, pNum, et, ha, doHard)
*/ */
int int
extConnFindFunc(tp, dinfo, preg) extConnFindFunc(
Tile *tp; Tile *tp,
TileType dinfo; // Unused, but needs to be handled TileType dinfo, // Unused, but needs to be handled
LabRegion **preg; LabRegion **preg)
{ {
if (extHasRegion(tp, CLIENTDEFAULT)) if (extHasRegion(tp, CLIENTDEFAULT))
{ {
@ -1220,12 +1220,12 @@ extConnFindFunc(tp, dinfo, preg)
*/ */
LabRegion * LabRegion *
extSubtreeHardNode(tp, dinfo, pNum, et, ha) extSubtreeHardNode(
Tile *tp; Tile *tp,
TileType dinfo; TileType dinfo,
int pNum; int pNum,
ExtTree *et; ExtTree *et,
HierExtractArg *ha; HierExtractArg *ha)
{ {
LabRegion *lreg = (LabRegion *) ExtGetRegion(tp, dinfo); LabRegion *lreg = (LabRegion *) ExtGetRegion(tp, dinfo);
CellDef *def = et->et_use->cu_def; CellDef *def = et->et_use->cu_def;
@ -1301,9 +1301,9 @@ extSubtreeHardNode(tp, dinfo, pNum, et, ha)
*/ */
void void
extSubtreeHardSearch(et, arg) extSubtreeHardSearch(
ExtTree *et; ExtTree *et,
HardWay *arg; HardWay *arg)
{ {
HierExtractArg *ha = arg->hw_ha; HierExtractArg *ha = arg->hw_ha;
ExtTree *oneFlat; ExtTree *oneFlat;
@ -1352,13 +1352,14 @@ extSubtreeHardSearch(et, arg)
*/ */
int int
extSubtreeHardUseFunc(use, trans, x, y, arg) extSubtreeHardUseFunc(
CellUse *use; /* Use that is the root of the subtree being searched */ CellUse *use, /* Use that is the root of the subtree being searched */
Transform *trans; /* Transform from coordinates of use->cu_def to those Transform *trans, /* Transform from coordinates of use->cu_def to those
* in use->cu_parent, for the array element (x, y). * in use->cu_parent, for the array element (x, y).
*/ */
int x, y; /* Indices of this array element */ int x,
HardWay *arg; /* Context passed down to filter functions */ int y,
HardWay *arg) /* Context passed down to filter functions */
{ {
SearchContext scx; SearchContext scx;
Transform tinv; Transform tinv;

View File

@ -275,8 +275,8 @@ static const keydesc devTable[] = {
*/ */
bool bool
ExtCompareStyle(stylename) ExtCompareStyle(
char *stylename; char *stylename)
{ {
ExtKeep *style; ExtKeep *style;
@ -335,15 +335,14 @@ ExtCompareStyle(stylename)
*/ */
bool bool
ExtGetDevInfo(idx, devnameptr, devtypeptr, s_rclassptr, d_rclassptr, ExtGetDevInfo(
sub_rclassptr, subnameptr) int idx,
int idx; char **devnameptr, /* Name of extracted device model */
char **devnameptr; /* Name of extracted device model */ TileType *devtypeptr, /* Magic tile type of device */
TileType *devtypeptr; /* Magic tile type of device */ short *s_rclassptr, /* Source (1st terminal) type only */
short *s_rclassptr; /* Source (1st terminal) type only */ short *d_rclassptr, /* Drain (2nd terminal) type only */
short *d_rclassptr; /* Drain (2nd terminal) type only */ short *sub_rclassptr,
short *sub_rclassptr; char **subnameptr)
char **subnameptr;
{ {
TileType t; TileType t;
TileTypeBitMask *rmask, *tmask; TileTypeBitMask *rmask, *tmask;
@ -477,8 +476,8 @@ ExtGetDevInfo(idx, devnameptr, devtypeptr, s_rclassptr, d_rclassptr,
*/ */
TileType TileType
extGetDevType(devname) extGetDevType(
char *devname; char *devname)
{ {
TileType t; TileType t;
ExtDevice *devptr; ExtDevice *devptr;
@ -503,8 +502,8 @@ extGetDevType(devname)
*/ */
int int
ExtGetGateTypesMask(mask) ExtGetGateTypesMask(
TileTypeBitMask *mask; TileTypeBitMask *mask)
{ {
TileType ttype; TileType ttype;
@ -540,8 +539,8 @@ ExtGetGateTypesMask(mask)
*/ */
int int
ExtGetDiffTypesMask(mask) ExtGetDiffTypesMask(
TileTypeBitMask *mask; TileTypeBitMask *mask)
{ {
TileType ttype; TileType ttype;
@ -573,9 +572,10 @@ ExtGetDiffTypesMask(mask)
*/ */
void void
ExtGetZAxis(tile, height, thick) ExtGetZAxis(
Tile *tile; Tile *tile,
float *height, *thick; float *height,
float *thick)
{ {
TileType ttype; TileType ttype;
@ -610,8 +610,8 @@ ExtGetZAxis(tile, height, thick)
*/ */
void void
ExtPrintPath(dolist) ExtPrintPath(
bool dolist; bool dolist)
{ {
if (ExtLocalPath == NULL) if (ExtLocalPath == NULL)
{ {
@ -659,8 +659,8 @@ ExtPrintPath(dolist)
*/ */
void void
ExtSetPath(path) ExtSetPath(
char *path; char *path)
{ {
if (path != NULL) if (path != NULL)
{ {
@ -692,10 +692,10 @@ ExtSetPath(path)
*/ */
void void
ExtPrintStyle(dolist, doforall, docurrent) ExtPrintStyle(
bool dolist; bool dolist,
bool doforall; bool doforall,
bool docurrent; bool docurrent)
{ {
ExtKeep *style; ExtKeep *style;
@ -759,8 +759,8 @@ ExtPrintStyle(dolist, doforall, docurrent)
*/ */
void void
ExtSetStyle(name) ExtSetStyle(
char *name; char *name)
{ {
ExtKeep *style, *match; ExtKeep *style, *match;
int length; int length;
@ -826,8 +826,8 @@ extTechStyleAlloc()
*/ */
void void
extTechStyleInit(style) extTechStyleInit(
ExtStyle *style; ExtStyle *style)
{ {
TileType r, s; TileType r, s;
@ -1017,8 +1017,8 @@ extTechStyleNew()
*/ */
CapValue CapValue
aToCap(str) aToCap(
char *str; char *str)
{ {
CapValue capVal; CapValue capVal;
if (sscanf(str, "%lf", &capVal) != 1) { if (sscanf(str, "%lf", &capVal) != 1) {
@ -1044,8 +1044,8 @@ aToCap(str)
*/ */
ResValue ResValue
aToRes(str) aToRes(
char *str; char *str)
{ {
ResValue resVal; ResValue resVal;
if (sscanf(str, "%d", &resVal) != 1) { if (sscanf(str, "%d", &resVal) != 1) {
@ -1072,8 +1072,8 @@ aToRes(str)
* ---------------------------------------------------------------------------- * ----------------------------------------------------------------------------
*/ */
void void
ExtLoadStyle(stylename) ExtLoadStyle(
char *stylename; char *stylename)
{ {
SectionID invext; SectionID invext;
@ -1177,9 +1177,9 @@ ExtTechInit()
*/ */
void void
ExtTechSimpleAreaCap(argc, argv) ExtTechSimpleAreaCap(
int argc; int argc,
char *argv[]; char *argv[])
{ {
TileType s, t; TileType s, t;
TileTypeBitMask types, subtypes, shields; TileTypeBitMask types, subtypes, shields;
@ -1355,9 +1355,9 @@ ExtTechSimpleAreaCap(argc, argv)
*/ */
void void
ExtTechSimplePerimCap(argc, argv) ExtTechSimplePerimCap(
int argc; int argc,
char *argv[]; char *argv[])
{ {
TileType r, s, t; TileType r, s, t;
TileTypeBitMask types, nottypes, subtypes, shields; TileTypeBitMask types, nottypes, subtypes, shields;
@ -1541,9 +1541,9 @@ ExtTechSimplePerimCap(argc, argv)
*/ */
void void
ExtTechSimpleSidewallCap(argc, argv) ExtTechSimpleSidewallCap(
int argc; int argc,
char *argv[]; char *argv[])
{ {
/* Like ExtTechLine, but with near = types2 and far = types1 */ /* Like ExtTechLine, but with near = types2 and far = types1 */
@ -1626,8 +1626,8 @@ ExtTechSimpleSidewallCap(argc, argv)
*/ */
void void
ExtTechSimpleOverlapCap(argv) ExtTechSimpleOverlapCap(
char *argv[]; char *argv[])
{ {
TileType s, t; TileType s, t;
TileTypeBitMask types1, types2, shields; TileTypeBitMask types1, types2, shields;
@ -1724,8 +1724,8 @@ ExtTechSimpleOverlapCap(argv)
*/ */
void void
ExtTechSimpleSideOverlapCap(argv) ExtTechSimpleSideOverlapCap(
char *argv[]; char *argv[])
{ {
TileType r, s, t; TileType r, s, t;
TileTypeBitMask types, nottypes, ov, notov, shields; TileTypeBitMask types, nottypes, ov, notov, shields;
@ -1981,10 +1981,10 @@ ExtTechSimpleSideOverlapCap(argv)
/*ARGSUSED*/ /*ARGSUSED*/
bool bool
ExtTechLine(sectionName, argc, argv) ExtTechLine(
char *sectionName; char *sectionName,
int argc; int argc,
char *argv[]; char *argv[])
{ {
int n, l, i, j, size, val, p1, p2, p3, nterm, iterm, class; int n, l, i, j, size, val, p1, p2, p3, nterm, iterm, class;
PlaneMask pshield, pov; PlaneMask pshield, pov;
@ -3575,8 +3575,8 @@ ExtTechFinal()
void void
extTechFinalStyle(style) extTechFinalStyle(
ExtStyle *style; ExtStyle *style)
{ {
TileTypeBitMask maskBits; TileTypeBitMask maskBits;
TileType r, s, t; TileType r, s, t;
@ -3944,9 +3944,9 @@ zinit:
*/ */
void void
ExtTechScale(scalen, scaled) ExtTechScale(
int scalen; /* Scale numerator */ int scalen, /* Scale numerator */
int scaled; /* Scale denominator */ int scaled) /* Scale denominator */
{ {
ExtStyle *style = ExtCurStyle; ExtStyle *style = ExtCurStyle;
EdgeCap *ec; EdgeCap *ec;

View File

@ -105,9 +105,9 @@ void extShowConnect(char *, TileTypeBitMask *, FILE *);
*/ */
void void
ExtractTest(w, cmd) ExtractTest(
MagWindow *w; MagWindow *w,
TxCommand *cmd; TxCommand *cmd)
{ {
extern long extSubtreeTotalArea; extern long extSubtreeTotalArea;
extern long extSubtreeInteractionArea; extern long extSubtreeInteractionArea;
@ -316,10 +316,10 @@ ExtractTest(w, cmd)
} }
int int
extShowInter(tile, dinfo, clientdata) extShowInter(
Tile *tile; Tile *tile,
TileType dinfo; /* (unused) */ TileType dinfo, /* (unused) */
ClientData clientdata; /* (unused) */ ClientData clientdata) /* (unused) */
{ {
Rect r; Rect r;
@ -351,8 +351,8 @@ extShowInter(tile, dinfo, clientdata)
*/ */
void void
extShowTech(name) extShowTech(
char *name; char *name)
{ {
FILE *out; FILE *out;
TileType t, s; TileType t, s;
@ -489,10 +489,10 @@ extShowTech(name)
} }
void void
extShowTrans(name, mask, out) extShowTrans(
char *name; char *name,
TileTypeBitMask *mask; TileTypeBitMask *mask,
FILE *out; FILE *out)
{ {
TileType t; TileType t;
@ -518,10 +518,10 @@ extShowTrans(name, mask, out)
} }
void void
extShowConnect(hdr, connectsTo, out) extShowConnect(
char *hdr; char *hdr,
TileTypeBitMask *connectsTo; TileTypeBitMask *connectsTo,
FILE *out; FILE *out)
{ {
TileType t; TileType t;
@ -536,9 +536,9 @@ extShowConnect(hdr, connectsTo, out)
} }
void void
extShowMask(m, out) extShowMask(
TileTypeBitMask *m; TileTypeBitMask *m,
FILE *out; FILE *out)
{ {
TileType t; TileType t;
bool first = TRUE; bool first = TRUE;
@ -554,9 +554,9 @@ extShowMask(m, out)
} }
void void
extShowPlanes(m, out) extShowPlanes(
PlaneMask m; PlaneMask m,
FILE *out; FILE *out)
{ {
int pNum; int pNum;
bool first = TRUE; bool first = TRUE;
@ -589,9 +589,9 @@ extShowPlanes(m, out)
*/ */
void void
extDispInit(def, w) extDispInit(
CellDef *def; CellDef *def,
MagWindow *w; MagWindow *w)
{ {
extDebugWindow = w; extDebugWindow = w;
extCellDef = def; extCellDef = def;
@ -618,9 +618,9 @@ extDispInit(def, w)
*/ */
void void
extShowEdge(s, bp) extShowEdge(
char *s; char *s,
Boundary *bp; Boundary *bp)
{ {
Rect extScreenRect, edgeRect; Rect extScreenRect, edgeRect;
int style = STYLE_PURPLE1; int style = STYLE_PURPLE1;
@ -679,10 +679,10 @@ extShowEdge(s, bp)
*/ */
void void
extShowTile(tile, s, style_index) extShowTile(
Tile *tile; Tile *tile,
char *s; char *s,
int style_index; int style_index)
{ {
Rect tileRect; Rect tileRect;
static int styles[] = { STYLE_PALEHIGHLIGHTS, STYLE_DOTTEDHIGHLIGHTS }; static int styles[] = { STYLE_PALEHIGHLIGHTS, STYLE_DOTTEDHIGHLIGHTS };
@ -697,9 +697,9 @@ extShowTile(tile, s, style_index)
} }
bool bool
extShowRect(r, style) extShowRect(
Rect *r; Rect *r,
int style; int style)
{ {
Rect extScreenRect; Rect extScreenRect;
@ -731,10 +731,10 @@ extMore()
} }
void void
extNewYank(name, puse, pdef) extNewYank(
char *name; char *name,
CellUse **puse; CellUse **puse,
CellDef **pdef; CellDef **pdef)
{ {
DBNewYank(name, puse, pdef); DBNewYank(name, puse, pdef);
} }
@ -746,8 +746,8 @@ extNewYank(name, puse, pdef)
*/ */
void void
ExtDumpCapsToFile(f) ExtDumpCapsToFile(
FILE *f; FILE *f)
{ {
TileType t, s, r; TileType t, s, r;
EdgeCap *e; EdgeCap *e;
@ -1093,8 +1093,8 @@ ExtDumpCapsToFile(f)
*/ */
void void
ExtDumpCaps(filename) ExtDumpCaps(
char *filename; char *filename)
{ {
TileType t, s, r; TileType t, s, r;
EdgeCap *e; EdgeCap *e;

View File

@ -162,9 +162,9 @@ extern int extDefInitFunc();
*/ */
void void
ExtTimes(rootUse, f) ExtTimes(
CellUse *rootUse; CellUse *rootUse,
FILE *f; FILE *f)
{ {
double clip, inter; double clip, inter;
HashSearch hs; HashSearch hs;
@ -290,9 +290,9 @@ ExtTimes(rootUse, f)
/*ARGSUSED*/ /*ARGSUSED*/
int int
extTimesInitFunc(use, cdata) extTimesInitFunc(
CellUse *use; CellUse *use,
ClientData cdata; /* UNUSED */ ClientData cdata) /* UNUSED */
{ {
CellDef *def = use->cu_def; CellDef *def = use->cu_def;
struct cellStats *cs; struct cellStats *cs;
@ -345,8 +345,8 @@ extTimesInitFunc(use, cdata)
*/ */
void void
extTimesCellFunc(cs) extTimesCellFunc(
struct cellStats *cs; struct cellStats *cs)
{ {
extern long extSubtreeTotalArea; extern long extSubtreeTotalArea;
extern long extSubtreeInteractionArea; extern long extSubtreeInteractionArea;
@ -398,10 +398,10 @@ extTimesCellFunc(cs)
*/ */
int int
extCountTiles(tile, dinfo, cs) extCountTiles(
Tile *tile; /* (unused) */ Tile *tile, /* (unused) */
TileType dinfo; /* (unused) */ TileType dinfo, /* (unused) */
struct cellStats *cs; struct cellStats *cs)
{ {
cs->cs_rects++; cs->cs_rects++;
return (0); return (0);
@ -432,8 +432,8 @@ extCountTiles(tile, dinfo, cs)
*/ */
void void
extTimesIncrFunc(cs) extTimesIncrFunc(
struct cellStats *cs; struct cellStats *cs)
{ {
/* /*
* Visit all of our parents recursively. * Visit all of our parents recursively.
@ -481,9 +481,9 @@ extTimesIncrFunc(cs)
*/ */
void void
extTimesSummaryFunc(cs, f) extTimesSummaryFunc(
struct cellStats *cs; struct cellStats *cs,
FILE *f; FILE *f)
{ {
double tpaint, tcell, thier, tincr; double tpaint, tcell, thier, tincr;
double fetspaint, rectspaint; double fetspaint, rectspaint;
@ -590,9 +590,9 @@ extTimesSummaryFunc(cs, f)
*/ */
void void
extTimesParentFunc(def, cs) extTimesParentFunc(
CellDef *def; CellDef *def,
struct cellStats *cs; struct cellStats *cs)
{ {
struct cellStats *csForDef; struct cellStats *csForDef;
CellUse *parent; CellUse *parent;
@ -643,9 +643,9 @@ extTimesParentFunc(def, cs)
*/ */
int int
extTimesHierFunc(def, cs) extTimesHierFunc(
CellDef *def; CellDef *def,
struct cellStats *cs; struct cellStats *cs)
{ {
int extTimesHierUse(); int extTimesHierUse();
struct cellStats *csForDef; struct cellStats *csForDef;
@ -679,9 +679,9 @@ extTimesHierFunc(def, cs)
} }
int int
extTimesHierUse(use, cs) extTimesHierUse(
CellUse *use; CellUse *use,
struct cellStats *cs; struct cellStats *cs)
{ {
return (extTimesHierFunc(use->cu_def, cs)); return (extTimesHierFunc(use->cu_def, cs));
} }
@ -707,9 +707,9 @@ extTimesHierUse(use, cs)
*/ */
int int
extTimesFlatFunc(def, cs) extTimesFlatFunc(
CellDef *def; CellDef *def,
struct cellStats *cs; struct cellStats *cs)
{ {
struct cellStats *csForDef; struct cellStats *csForDef;
int extTimesFlatUse(); int extTimesFlatUse();
@ -728,9 +728,9 @@ extTimesFlatFunc(def, cs)
} }
int int
extTimesFlatUse(use, cs) extTimesFlatUse(
CellUse *use; CellUse *use,
struct cellStats *cs; struct cellStats *cs)
{ {
struct cellStats dummyCS; struct cellStats dummyCS;
int nx, ny, nel; int nx, ny, nel;
@ -781,10 +781,10 @@ extTimesFlatUse(use, cs)
*/ */
void void
extTimeProc(proc, def, tv) extTimeProc(
int (*proc)(); int (*proc)(),
CellDef *def; CellDef *def,
struct timeval *tv; struct timeval *tv)
{ {
int secs, usecs, i; int secs, usecs, i;
@ -839,8 +839,8 @@ extTimeProc(proc, def, tv)
*/ */
void void
extPaintOnly(def) extPaintOnly(
CellDef *def; CellDef *def)
{ {
NodeRegion *reg; NodeRegion *reg;
@ -867,8 +867,8 @@ extPaintOnly(def)
*/ */
void void
extHierCell(def) extHierCell(
CellDef *def; CellDef *def)
{ {
extCellFile(def, extDevNull, FALSE); extCellFile(def, extDevNull, FALSE);
} }
@ -890,8 +890,8 @@ extHierCell(def)
*/ */
void void
extCumInit(cum) extCumInit(
struct cumStats *cum; struct cumStats *cum)
{ {
cum->cums_min = (double) INFINITY; cum->cums_min = (double) INFINITY;
cum->cums_max = (double) MINFINITY; cum->cums_max = (double) MINFINITY;
@ -917,10 +917,10 @@ extCumInit(cum)
*/ */
void void
extCumOutput(str, cum, f) extCumOutput(
char *str; /* Prefix string */ char *str, /* Prefix string */
struct cumStats *cum; struct cumStats *cum,
FILE *f; FILE *f)
{ {
double mean, var; double mean, var;
@ -961,9 +961,9 @@ extCumOutput(str, cum, f)
*/ */
void void
extCumAdd(cum, v) extCumAdd(
struct cumStats *cum; struct cumStats *cum,
double v; double v)
{ {
if (v < cum->cums_min) cum->cums_min = v; if (v < cum->cums_min) cum->cums_min = v;
if (v > cum->cums_max) cum->cums_max = v; if (v > cum->cums_max) cum->cums_max = v;
@ -989,8 +989,8 @@ extCumAdd(cum, v)
*/ */
struct cellStats * struct cellStats *
extGetStats(def) extGetStats(
CellDef *def; CellDef *def)
{ {
HashEntry *he; HashEntry *he;
@ -1024,10 +1024,10 @@ int extInterCountHalo;
CellDef *extInterCountDef; CellDef *extInterCountDef;
void void
ExtInterCount(rootUse, halo, f) ExtInterCount(
CellUse *rootUse; CellUse *rootUse,
int halo; int halo,
FILE *f; FILE *f)
{ {
double inter; double inter;
CellDef *err_def; CellDef *err_def;
@ -1073,9 +1073,9 @@ ExtInterCount(rootUse, halo, f)
} }
int int
extInterAreaFunc(use, f) extInterAreaFunc(
CellUse *use; CellUse *use,
FILE *f; FILE *f)
{ {
static Plane *interPlane = (Plane *) NULL; static Plane *interPlane = (Plane *) NULL;
CellDef *def = use->cu_def; CellDef *def = use->cu_def;
@ -1118,10 +1118,10 @@ extInterAreaFunc(use, f)
} }
int int
extInterCountFunc(tile, dinfo, pArea) extInterCountFunc(
Tile *tile; Tile *tile,
TileType dinfo; /* (unused) */ TileType dinfo, /* (unused) */
int *pArea; int *pArea)
{ {
Rect r; Rect r;

View File

@ -80,9 +80,9 @@ static char rcsid[] __attribute__ ((unused)) = "$Header: /usr/cvsroot/magic-8.0/
*/ */
int int
extUniqueCell(def, option) extUniqueCell(
CellDef *def; CellDef *def,
int option; int option)
{ {
NodeRegion *nodeList; NodeRegion *nodeList;
LabRegion *lregList, *lastreg, processedLabel; LabRegion *lregList, *lastreg, processedLabel;
@ -95,7 +95,7 @@ extUniqueCell(def, option)
int nwarn; int nwarn;
bool isabstract; bool isabstract;
NodeRegion *extFindNodes(); /* Forward reference */ NodeRegion *extFindNodes(CellDef *def, Rect *clipArea, bool subonly); /* Forward reference */
nwarn = 0; nwarn = 0;
@ -201,12 +201,13 @@ extUniqueCell(def, option)
} }
int int
extMakeUnique(def, ll, lreg, lregList, labelHash, option) extMakeUnique(
CellDef *def; CellDef *def,
LabelList *ll; LabelList *ll,
LabRegion *lreg, *lregList; LabRegion *lreg,
HashTable *labelHash; LabRegion *lregList,
int option; HashTable *labelHash,
int option)
{ {
static char *badmesg = static char *badmesg =
"Non-global label \"%s\" attached to more than one unconnected node: %s"; "Non-global label \"%s\" attached to more than one unconnected node: %s";
@ -366,7 +367,8 @@ makeUnique:
*/ */
void void
ExtRevertUniqueCell(CellDef *def) ExtRevertUniqueCell(
CellDef *def)
{ {
Label *lab, *tlab; Label *lab, *tlab;
char *uptr; char *uptr;

View File

@ -70,8 +70,9 @@ int extHierLabelFunc();
*/ */
void void
extHierCopyLabels(sourceDef, targetDef) extHierCopyLabels(
CellDef *sourceDef, *targetDef; CellDef *sourceDef,
CellDef *targetDef)
{ {
Label *lab, *newlab, *firstLab, *lastLab; Label *lab, *newlab, *firstLab, *lastLab;
unsigned n; unsigned n;
@ -115,8 +116,8 @@ extHierCopyLabels(sourceDef, targetDef)
*/ */
void void
extHierFreeLabels(def) extHierFreeLabels(
CellDef *def; CellDef *def)
{ {
Label *lab; Label *lab;
@ -156,13 +157,14 @@ extHierFreeLabels(def)
*/ */
int int
extHierYankFunc(use, trans, x, y, hy) extHierYankFunc(
CellUse *use; /* Use that is the root of the subtree being yanked */ CellUse *use, /* Use that is the root of the subtree being yanked */
Transform *trans; /* Transform from coordinates of use->cu_def to those Transform *trans, /* Transform from coordinates of use->cu_def to those
* in use->cu_parent, for the array element (x, y). * in use->cu_parent, for the array element (x, y).
*/ */
int x, y; /* Indices of this array element */ int x,
HierYank *hy; /* See comments in procedure header */ int y,
HierYank *hy) /* See comments in procedure header */
{ {
char labelBuf[4096]; char labelBuf[4096];
TerminalPath tpath; TerminalPath tpath;
@ -201,11 +203,11 @@ extHierYankFunc(use, trans, x, y, hy)
} }
int int
extHierLabelFunc(scx, label, tpath, targetDef) extHierLabelFunc(
SearchContext *scx; SearchContext *scx,
Label *label; Label *label,
TerminalPath *tpath; TerminalPath *tpath,
CellDef *targetDef; CellDef *targetDef)
{ {
char *srcp, *dstp; char *srcp, *dstp;
Label *newlab; Label *newlab;

View File

@ -93,12 +93,12 @@ extern bool ExtTechLine();
extern void ExtTechInit(); extern void ExtTechInit();
extern void ExtTechFinal(); extern void ExtTechFinal();
extern void ExtSetStyle(); extern void ExtSetStyle();
extern void ExtPrintStyle(); extern void ExtPrintStyle(bool dolist, bool doforall, bool docurrent);
extern void ExtSetPath(); extern void ExtSetPath();
extern void ExtPrintPath(); extern void ExtPrintPath(bool dolist);
extern void ExtRevertSubstrate(); extern void ExtRevertSubstrate();
extern Plane *ExtCell(); extern Plane *ExtCell(CellDef *def, char *outName, bool isTop);
extern void ExtractOneCell(); extern void ExtractOneCell(CellDef *def, char *outName, bool doLength);
extern int ExtGetGateTypesMask(); extern int ExtGetGateTypesMask();
extern int ExtGetDiffTypesMask(); extern int ExtGetDiffTypesMask();

View File

@ -1087,7 +1087,7 @@ extern Tile *extNodeToTile();
extern char *extNodeName(); extern char *extNodeName();
extern NodeRegion *extBasic(); extern NodeRegion *extBasic();
extern NodeRegion *extFindNodes(); extern NodeRegion *extFindNodes(CellDef *def, Rect *clipArea, bool subonly);
extern ExtTree *extHierNewOne(); extern ExtTree *extHierNewOne();
extern int extNbrPushFunc(); extern int extNbrPushFunc();
extern TileType extGetDevType(); extern TileType extGetDevType();
@ -1116,12 +1116,12 @@ extern void ExtFindInteractions();
extern void ExtInterCount(); extern void ExtInterCount();
extern void ExtInterCount(); extern void ExtInterCount();
extern void ExtTimes(); extern void ExtTimes();
extern void ExtParentArea(); extern void ExtParentArea(CellUse *use, Rect *changedArea, bool doExtract);
extern void extHierCopyLabels(); extern void extHierCopyLabels();
extern int extTimesInitFunc(); extern int extTimesInitFunc();
extern int extTimesHierFunc(); extern int extTimesHierFunc();
extern int extTimesFlatFunc(); extern int extTimesFlatFunc();
extern Plane *extCellFile(); extern Plane *extCellFile(CellDef *def, FILE *f, bool isTop);
extern int extInterAreaFunc(); extern int extInterAreaFunc();
extern int extTreeSrPaintArea(); extern int extTreeSrPaintArea();
extern int extMakeUnique(); extern int extMakeUnique();