GCC14: warning: missing braces around initializer
GCC14 -Wall cleanup series [-Wmissing-braces]
This commit is contained in:
parent
3300f45a22
commit
967b41343b
|
|
@ -91,36 +91,36 @@ extern void CMWundoInit();
|
||||||
|
|
||||||
ColorBar colorBars[] =
|
ColorBar colorBars[] =
|
||||||
{
|
{
|
||||||
"Red", CB_RED, STYLE_RED, {2000, 8000, 10000, 9000},
|
{"Red", CB_RED, STYLE_RED, {{ 2000, 8000}, {10000, 9000}},
|
||||||
{2000, 9500, 10000, 10500},
|
{{ 2000, 9500}, {10000, 10500}}},
|
||||||
"Green", CB_GREEN, STYLE_GREEN, {2000, 5000, 10000, 6000},
|
{"Green", CB_GREEN, STYLE_GREEN, {{ 2000, 5000}, {10000, 6000}},
|
||||||
{2000, 6500, 10000, 7500},
|
{{ 2000, 6500}, {10000, 7500}}},
|
||||||
"Blue", CB_BLUE, STYLE_BLUE, {2000, 2000, 10000, 3000},
|
{"Blue", CB_BLUE, STYLE_BLUE, {{ 2000, 2000}, {10000, 3000}},
|
||||||
{2000, 3500, 10000, 4500},
|
{{ 2000, 3500}, {10000, 4500}}},
|
||||||
"Hue", CB_HUE, STYLE_YELLOW, {14000, 8000, 22000, 9000},
|
{"Hue", CB_HUE, STYLE_YELLOW, {{14000, 8000}, {22000, 9000}},
|
||||||
{14000, 9500, 22000, 10500},
|
{{14000, 9500}, {22000, 10500}}},
|
||||||
"Saturation", CB_SAT, STYLE_GRAY, {14000, 5000, 22000, 6000},
|
{"Saturation", CB_SAT, STYLE_GRAY, {{14000, 5000}, {22000, 6000}},
|
||||||
{14000, 6500, 22000, 7500},
|
{{14000, 6500}, {22000, 7500}}},
|
||||||
"Value", CB_VALUE, STYLE_BROWN1, {14000, 2000, 22000, 3000},
|
{"Value", CB_VALUE, STYLE_BROWN1, {{14000, 2000}, {22000, 3000}},
|
||||||
{14000, 3500, 22000, 4500},
|
{{14000, 3500}, {22000, 4500}}},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
ColorPump colorPumps[] =
|
ColorPump colorPumps[] =
|
||||||
{
|
{
|
||||||
CB_RED, -.0078, {500, 8000, 1500, 9000},
|
{CB_RED, -.0078, {{ 500, 8000}, { 1500, 9000}}},
|
||||||
CB_RED, .0078, {10500, 8000, 11500, 9000},
|
{CB_RED, .0078, {{10500, 8000}, {11500, 9000}}},
|
||||||
CB_GREEN, -.0078, {500, 5000, 1500, 6000},
|
{CB_GREEN, -.0078, {{ 500, 5000}, { 1500, 6000}}},
|
||||||
CB_GREEN, .0078, {10500, 5000, 11500, 6000},
|
{CB_GREEN, .0078, {{10500, 5000}, {11500, 6000}}},
|
||||||
CB_BLUE, -.0078, {500, 2000, 1500, 3000},
|
{CB_BLUE, -.0078, {{ 500, 2000}, { 1500, 3000}}},
|
||||||
CB_BLUE, .0078, {10500, 2000, 11500, 3000},
|
{CB_BLUE, .0078, {{10500, 2000}, {11500, 3000}}},
|
||||||
CB_HUE, -.01, {12500, 8000, 13500, 9000},
|
{CB_HUE, -.01, {{12500, 8000}, {13500, 9000}}},
|
||||||
CB_HUE, .01, {22500, 8000, 23500, 9000},
|
{CB_HUE, .01, {{22500, 8000}, {23500, 9000}}},
|
||||||
CB_SAT, -.01, {12500, 5000, 13500, 6000},
|
{CB_SAT, -.01, {{12500, 5000}, {13500, 6000}}},
|
||||||
CB_SAT, .01, {22500, 5000, 23500, 6000},
|
{CB_SAT, .01, {{22500, 5000}, {23500, 6000}}},
|
||||||
CB_VALUE, -.01, {12500, 2000, 13500, 3000},
|
{CB_VALUE, -.01, {{12500, 2000}, {13500, 3000}}},
|
||||||
CB_VALUE, .01, {22500, 2000, 23500, 3000},
|
{CB_VALUE, .01, {{22500, 2000}, {23500, 3000}}},
|
||||||
-1
|
{-1}
|
||||||
};
|
};
|
||||||
|
|
||||||
Rect cmwCurrentColorArea = {{6000, 12000}, {18000, 15000}};
|
Rect cmwCurrentColorArea = {{6000, 12000}, {18000, 15000}};
|
||||||
|
|
|
||||||
|
|
@ -201,7 +201,7 @@ cmdEditRedisplayFunc(w, area)
|
||||||
MagWindow *w; /* Window containing edit cell. */
|
MagWindow *w; /* Window containing edit cell. */
|
||||||
Rect *area; /* Area to be redisplayed. */
|
Rect *area; /* Area to be redisplayed. */
|
||||||
{
|
{
|
||||||
static Rect origin = {-1, -1, 1, 1};
|
static Rect origin = {{-1, -1}, {1, 1}};
|
||||||
Rect tmp;
|
Rect tmp;
|
||||||
DBWclientRec *crec = (DBWclientRec *) w->w_clientData;
|
DBWclientRec *crec = (DBWclientRec *) w->w_clientData;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -817,7 +817,7 @@ CmdSelect(w, cmd)
|
||||||
* multiples types are pointed to, consecutive
|
* multiples types are pointed to, consecutive
|
||||||
* selections will cycle through them.
|
* selections will cycle through them.
|
||||||
*/
|
*/
|
||||||
static Rect lastArea = {-100, -100, -200, -200};
|
static Rect lastArea = {{-100, -100}, {-200, -200}};
|
||||||
/* Used to remember region around what was
|
/* Used to remember region around what was
|
||||||
* pointed at in the last select command: a
|
* pointed at in the last select command: a
|
||||||
* new selection in this area causes the next
|
* new selection in this area causes the next
|
||||||
|
|
|
||||||
|
|
@ -399,13 +399,13 @@ CmdParseLayers(s, mask)
|
||||||
}
|
}
|
||||||
special[] =
|
special[] =
|
||||||
{
|
{
|
||||||
"$", LN_DOLLAR,
|
{"$", LN_DOLLAR},
|
||||||
"*", LN_ALL,
|
{"*", LN_ALL},
|
||||||
"errors", LN_ERRORS,
|
{"errors", LN_ERRORS},
|
||||||
"labels", LN_LABELS,
|
{"labels", LN_LABELS},
|
||||||
"subcell", LN_CELL,
|
{"subcell", LN_CELL},
|
||||||
"connect", LN_CONNECT,
|
{"connect", LN_CONNECT},
|
||||||
0,
|
{0},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -70,28 +70,28 @@ TileTypeBitMask DBTechActiveLayerBits; /* Layers marked locked in the techfile *
|
||||||
/* Table of default, builtin planes */
|
/* Table of default, builtin planes */
|
||||||
DefaultPlane dbTechDefaultPlanes[] =
|
DefaultPlane dbTechDefaultPlanes[] =
|
||||||
{
|
{
|
||||||
PL_ROUTER, "router",
|
{PL_ROUTER, "router"},
|
||||||
PL_DRC_ERROR, "designRuleError",
|
{PL_DRC_ERROR, "designRuleError"},
|
||||||
PL_DRC_CHECK, "designRuleCheck",
|
{PL_DRC_CHECK, "designRuleCheck"},
|
||||||
PL_M_HINT, "mhint",
|
{PL_M_HINT, "mhint"},
|
||||||
PL_F_HINT, "fhint",
|
{PL_F_HINT, "fhint"},
|
||||||
PL_R_HINT, "rhint",
|
{PL_R_HINT, "rhint"},
|
||||||
0, 0, 0
|
{0, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Table of default, builtin types */
|
/* Table of default, builtin types */
|
||||||
DefaultType dbTechDefaultTypes[] =
|
DefaultType dbTechDefaultTypes[] =
|
||||||
{
|
{
|
||||||
TT_SPACE, -1, "space", FALSE,
|
{TT_SPACE, -1, "space", FALSE},
|
||||||
TT_CHECKPAINT, PL_DRC_CHECK, "checkpaint,CP", FALSE,
|
{TT_CHECKPAINT, PL_DRC_CHECK, "checkpaint,CP", FALSE},
|
||||||
TT_CHECKSUBCELL, PL_DRC_CHECK, "checksubcell,CS", FALSE,
|
{TT_CHECKSUBCELL, PL_DRC_CHECK, "checksubcell,CS", FALSE},
|
||||||
TT_ERROR_P, PL_DRC_ERROR, "error_p,EP", FALSE,
|
{TT_ERROR_P, PL_DRC_ERROR, "error_p,EP", FALSE},
|
||||||
TT_ERROR_S, PL_DRC_ERROR, "error_s,ES", FALSE,
|
{TT_ERROR_S, PL_DRC_ERROR, "error_s,ES", FALSE},
|
||||||
TT_ERROR_PS, PL_DRC_ERROR, "error_ps,EPS", FALSE,
|
{TT_ERROR_PS, PL_DRC_ERROR, "error_ps,EPS", FALSE},
|
||||||
TT_MAGNET, PL_M_HINT, "magnet,mag", TRUE,
|
{TT_MAGNET, PL_M_HINT, "magnet,mag", TRUE},
|
||||||
TT_FENCE, PL_F_HINT, "fence,f", TRUE,
|
{TT_FENCE, PL_F_HINT, "fence,f", TRUE},
|
||||||
TT_ROTATE, PL_R_HINT, "rotate,r", TRUE,
|
{TT_ROTATE, PL_R_HINT, "rotate,r", TRUE},
|
||||||
0, 0, NULL, 0
|
{0, 0, NULL, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Forward declarations */
|
/* Forward declarations */
|
||||||
|
|
|
||||||
|
|
@ -208,7 +208,7 @@ dbwUndoChangeEdit(ep)
|
||||||
Rect area;
|
Rect area;
|
||||||
CellUse *use;
|
CellUse *use;
|
||||||
CellDef *editDef, *parent;
|
CellDef *editDef, *parent;
|
||||||
static Rect origin = {-1, -1, 1, 1};
|
static Rect origin = {{-1, -1}, {1, 1}};
|
||||||
|
|
||||||
/* Redisplay the old edit cell */
|
/* Redisplay the old edit cell */
|
||||||
GeoTransRect(&EditToRootTransform, &(EditCellUse->cu_def->cd_bbox), &area);
|
GeoTransRect(&EditToRootTransform, &(EditCellUse->cu_def->cd_bbox), &area);
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ extern int drcArrayYankFunc(), drcArrayOverlapFunc();
|
||||||
|
|
||||||
static DRCCookie drcArrayCookie = {
|
static DRCCookie drcArrayCookie = {
|
||||||
0, 0, 0, 0,
|
0, 0, 0, 0,
|
||||||
{ 0 }, { 0 },
|
{ {0} }, { {0} },
|
||||||
0, 0, 0,
|
0, 0, 0,
|
||||||
DRC_ARRAY_OVERLAP_TAG,
|
DRC_ARRAY_OVERLAP_TAG,
|
||||||
(DRCCookie *) NULL
|
(DRCCookie *) NULL
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ int dbDRCDebug = 0;
|
||||||
|
|
||||||
static DRCCookie drcOverlapCookie = {
|
static DRCCookie drcOverlapCookie = {
|
||||||
0, 0, 0, 0,
|
0, 0, 0, 0,
|
||||||
{ 0 }, { 0 },
|
{ {0} }, { {0} },
|
||||||
0, 0, 0,
|
0, 0, 0,
|
||||||
DRC_OVERLAP_TAG,
|
DRC_OVERLAP_TAG,
|
||||||
(DRCCookie *) NULL
|
(DRCCookie *) NULL
|
||||||
|
|
|
||||||
|
|
@ -55,7 +55,7 @@ static ClientData drcSubClientData;
|
||||||
|
|
||||||
static DRCCookie drcSubcellCookie = {
|
static DRCCookie drcSubcellCookie = {
|
||||||
0, 0, 0, 0,
|
0, 0, 0, 0,
|
||||||
{ 0 }, { 0 },
|
{ {0} }, { {0} },
|
||||||
0, 0, 0,
|
0, 0, 0,
|
||||||
DRC_SUBCELL_OVERLAP_TAG,
|
DRC_SUBCELL_OVERLAP_TAG,
|
||||||
(DRCCookie *) NULL
|
(DRCCookie *) NULL
|
||||||
|
|
@ -68,7 +68,7 @@ static DRCCookie drcSubcellCookie = {
|
||||||
|
|
||||||
static DRCCookie drcInSubCookie = {
|
static DRCCookie drcInSubCookie = {
|
||||||
0, 0, 0, 0,
|
0, 0, 0, 0,
|
||||||
{ 0 }, { 0 },
|
{ {0} }, { {0} },
|
||||||
0, 0, 0,
|
0, 0, 0,
|
||||||
DRC_IN_SUBCELL_TAG,
|
DRC_IN_SUBCELL_TAG,
|
||||||
(DRCCookie *) NULL
|
(DRCCookie *) NULL
|
||||||
|
|
@ -82,7 +82,7 @@ static DRCCookie drcInSubCookie = {
|
||||||
|
|
||||||
static DRCCookie drcOffGridCookie = {
|
static DRCCookie drcOffGridCookie = {
|
||||||
0, 0, 0, 0,
|
0, 0, 0, 0,
|
||||||
{ 0 }, { 0 },
|
{ {0} }, { {0} },
|
||||||
0, 0, 0,
|
0, 0, 0,
|
||||||
DRC_OFFGRID_TAG,
|
DRC_OFFGRID_TAG,
|
||||||
(DRCCookie *) NULL
|
(DRCCookie *) NULL
|
||||||
|
|
|
||||||
|
|
@ -826,7 +826,7 @@ DRCTechLine(sectionName, argc, argv)
|
||||||
|
|
||||||
if (DRCStyleList == NULL)
|
if (DRCStyleList == NULL)
|
||||||
{
|
{
|
||||||
char *locargv[2][10] = {"style", "default"};
|
char *locargv[2][10] = {{"style"}, {"default"}};
|
||||||
|
|
||||||
if (DRCTechLine(sectionName, 2, locargv) == FALSE)
|
if (DRCTechLine(sectionName, 2, locargv) == FALSE)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
@ -1022,53 +1022,53 @@ DRCTechAddRule(sectionName, argc, argv)
|
||||||
int (*rk_proc)(); /* Procedure implementing this keyword */
|
int (*rk_proc)(); /* Procedure implementing this keyword */
|
||||||
char *rk_err; /* Error message */
|
char *rk_err; /* Error message */
|
||||||
} ruleKeys[] = {
|
} ruleKeys[] = {
|
||||||
"angles", 4, 4, drcAngles,
|
{"angles", 4, 4, drcAngles,
|
||||||
"layers 45|90 why",
|
"layers 45|90 why"},
|
||||||
"edge", 8, 9, drcEdge,
|
{"edge", 8, 9, drcEdge,
|
||||||
"layers1 layers2 distance okTypes cornerTypes cornerDistance why [plane]",
|
"layers1 layers2 distance okTypes cornerTypes cornerDistance why [plane]"},
|
||||||
"edge4way", 8, 9, drcEdge,
|
{"edge4way", 8, 9, drcEdge,
|
||||||
"layers1 layers2 distance okTypes cornerTypes cornerDistance why [plane]",
|
"layers1 layers2 distance okTypes cornerTypes cornerDistance why [plane]"},
|
||||||
"exact_overlap", 2, 2, drcExactOverlap,
|
{"exact_overlap", 2, 2, drcExactOverlap,
|
||||||
"layers",
|
"layers"},
|
||||||
"extend", 5, 6, drcExtend,
|
{"extend", 5, 6, drcExtend,
|
||||||
"layers1 layers2 distance [option] why",
|
"layers1 layers2 distance [option] why"},
|
||||||
"no_overlap", 3, 3, drcNoOverlap,
|
{"no_overlap", 3, 3, drcNoOverlap,
|
||||||
"layers1 layers2",
|
"layers1 layers2"},
|
||||||
"option", 2, 2, drcOption,
|
{"option", 2, 2, drcOption,
|
||||||
"option_name option_value",
|
"option_name option_value"},
|
||||||
"overhang", 5, 5, drcOverhang,
|
{"overhang", 5, 5, drcOverhang,
|
||||||
"layers1 layers2 distance why",
|
"layers1 layers2 distance why"},
|
||||||
"rect_only", 3, 3, drcRectOnly,
|
{"rect_only", 3, 3, drcRectOnly,
|
||||||
"layers why",
|
"layers why"},
|
||||||
"spacing", 6, 7, drcSpacing,
|
{"spacing", 6, 7, drcSpacing,
|
||||||
"layers1 layers2 separation [layers3] adjacency why",
|
"layers1 layers2 separation [layers3] adjacency why"},
|
||||||
"stepsize", 2, 2, drcStepSize,
|
{"stepsize", 2, 2, drcStepSize,
|
||||||
"step_size",
|
"step_size"},
|
||||||
"surround", 6, 7, drcSurround,
|
{"surround", 6, 7, drcSurround,
|
||||||
"layers1 layers2 distance presence why",
|
"layers1 layers2 distance presence why"},
|
||||||
"width", 4, 5, drcWidth,
|
{"width", 4, 5, drcWidth,
|
||||||
"layers width why",
|
"layers width why"},
|
||||||
"widespacing", 7, 8, drcSpacing,
|
{"widespacing", 7, 8, drcSpacing,
|
||||||
"layers1 width layers2 separation adjacency why",
|
"layers1 width layers2 separation adjacency why"},
|
||||||
"area", 5, 5, drcArea,
|
{"area", 5, 5, drcArea,
|
||||||
"layers area horizon why",
|
"layers area horizon why"},
|
||||||
"off_grid", 4, 4, drcOffGrid,
|
{"off_grid", 4, 4, drcOffGrid,
|
||||||
"layers pitch why",
|
"layers pitch why"},
|
||||||
"maxwidth", 4, 5, drcMaxwidth,
|
{"maxwidth", 4, 5, drcMaxwidth,
|
||||||
"layers maxwidth bends why",
|
"layers maxwidth bends why"},
|
||||||
"cifstyle", 2, 2, drcCifSetStyle,
|
{"cifstyle", 2, 2, drcCifSetStyle,
|
||||||
"cif_style",
|
"cif_style"},
|
||||||
"cifwidth", 4, 4, drcCifWidth,
|
{"cifwidth", 4, 4, drcCifWidth,
|
||||||
"layers width why",
|
"layers width why"},
|
||||||
"cifspacing", 6, 6, drcCifSpacing,
|
{"cifspacing", 6, 6, drcCifSpacing,
|
||||||
"layers1 layers2 separation adjacency why",
|
"layers1 layers2 separation adjacency why"},
|
||||||
"cifarea", 5, 5, drcCifArea,
|
{"cifarea", 5, 5, drcCifArea,
|
||||||
"layers area horizon why",
|
"layers area horizon why"},
|
||||||
"cifmaxwidth", 5, 5, drcCifMaxwidth,
|
{"cifmaxwidth", 5, 5, drcCifMaxwidth,
|
||||||
"layers maxwidth bends why",
|
"layers maxwidth bends why"},
|
||||||
"rectangle", 5, 5, drcRectangle,
|
{"rectangle", 5, 5, drcRectangle,
|
||||||
"layers maxwidth [even|odd|any] why",
|
"layers maxwidth [even|odd|any] why"},
|
||||||
0
|
{0}
|
||||||
}, *rp;
|
}, *rp;
|
||||||
|
|
||||||
drcRulesSpecified += 1;
|
drcRulesSpecified += 1;
|
||||||
|
|
|
||||||
|
|
@ -71,32 +71,32 @@ static struct
|
||||||
}
|
}
|
||||||
keyTable[] =
|
keyTable[] =
|
||||||
{
|
{
|
||||||
"abstract", ABSTRACT, 0, /* defines a LEF-like view */
|
{"abstract", ABSTRACT, 0}, /* defines a LEF-like view */
|
||||||
"adjust", ADJUST, 4,
|
{"adjust", ADJUST, 4},
|
||||||
"attr", ATTR, 8,
|
{"attr", ATTR, 8},
|
||||||
"cap", CAP, 4,
|
{"cap", CAP, 4},
|
||||||
"device", DEVICE, 11, /* effectively replaces "fet" */
|
{"device", DEVICE, 11}, /* effectively replaces "fet" */
|
||||||
"distance", DIST, 4,
|
{"distance", DIST, 4},
|
||||||
"equiv", EQUIV, 3,
|
{"equiv", EQUIV, 3},
|
||||||
"fet", FET, 12, /* for backwards compatibility */
|
{"fet", FET, 12}, /* for backwards compatibility */
|
||||||
"killnode", KILLNODE, 2,
|
{"killnode", KILLNODE, 2},
|
||||||
"merge", MERGE, 3,
|
{"merge", MERGE, 3},
|
||||||
"node", NODE, 7,
|
{"node", NODE, 7},
|
||||||
"parameters", PARAMETERS, 3,
|
{"parameters", PARAMETERS, 3},
|
||||||
"port", PORT, 8,
|
{"port", PORT, 8},
|
||||||
"primitive", PRIMITIVE, 0, /* defines a primitive device */
|
{"primitive", PRIMITIVE, 0}, /* defines a primitive device */
|
||||||
"resist", RESISTOR, 4,
|
{"resist", RESISTOR, 4},
|
||||||
"resistclasses", RESISTCLASS, 1,
|
{"resistclasses", RESISTCLASS, 1},
|
||||||
"rnode", RNODE, 5,
|
{"rnode", RNODE, 5},
|
||||||
"scale", SCALE, 4,
|
{"scale", SCALE, 4},
|
||||||
"subcap", SUBCAP, 3,
|
{"subcap", SUBCAP, 3},
|
||||||
"substrate", SUBSTRATE, 3,
|
{"substrate", SUBSTRATE, 3},
|
||||||
"tech", TECH, 2,
|
{"tech", TECH, 2},
|
||||||
"timestamp", TIMESTAMP, 2,
|
{"timestamp", TIMESTAMP, 2},
|
||||||
"use", USE, 9,
|
{"use", USE, 9},
|
||||||
"version", VERSION, 2,
|
{"version", VERSION, 2},
|
||||||
"style", EXT_STYLE, 2,
|
{"style", EXT_STYLE, 2},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Data shared with EFerror.c */
|
/* Data shared with EFerror.c */
|
||||||
|
|
|
||||||
|
|
@ -137,23 +137,23 @@ ExtInit()
|
||||||
char *di_name;
|
char *di_name;
|
||||||
int *di_id;
|
int *di_id;
|
||||||
} debugFlags[] = {
|
} debugFlags[] = {
|
||||||
"areaenum", &extDebAreaEnum,
|
{"areaenum", &extDebAreaEnum},
|
||||||
"array", &extDebArray,
|
{"array", &extDebArray},
|
||||||
"hardway", &extDebHardWay,
|
{"hardway", &extDebHardWay},
|
||||||
"hiercap", &extDebHierCap,
|
{"hiercap", &extDebHierCap},
|
||||||
"hierareacap", &extDebHierAreaCap,
|
{"hierareacap", &extDebHierAreaCap},
|
||||||
"label", &extDebLabel,
|
{"label", &extDebLabel},
|
||||||
"length", &extDebLength,
|
{"length", &extDebLength},
|
||||||
"neighbor", &extDebNeighbor,
|
{"neighbor", &extDebNeighbor},
|
||||||
"noarray", &extDebNoArray,
|
{"noarray", &extDebNoArray},
|
||||||
"nofeedback", &extDebNoFeedback,
|
{"nofeedback", &extDebNoFeedback},
|
||||||
"nohard", &extDebNoHard,
|
{"nohard", &extDebNoHard},
|
||||||
"nosubcell", &extDebNoSubcell,
|
{"nosubcell", &extDebNoSubcell},
|
||||||
"perimeter", &extDebPerim,
|
{"perimeter", &extDebPerim},
|
||||||
"resist", &extDebResist,
|
{"resist", &extDebResist},
|
||||||
"visonly", &extDebVisOnly,
|
{"visonly", &extDebVisOnly},
|
||||||
"yank", &extDebYank,
|
{"yank", &extDebYank},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Register ourselves with the debugging module */
|
/* Register ourselves with the debugging module */
|
||||||
|
|
|
||||||
|
|
@ -96,99 +96,99 @@ typedef struct
|
||||||
} keydesc;
|
} keydesc;
|
||||||
|
|
||||||
static keydesc keyTable[] = {
|
static keydesc keyTable[] = {
|
||||||
"areacap", AREAC, 3, 3,
|
{"areacap", AREAC, 3, 3,
|
||||||
"types capacitance",
|
"types capacitance"},
|
||||||
|
|
||||||
"contact", CONTACT, 3, 6,
|
{"contact", CONTACT, 3, 6,
|
||||||
"type resistance",
|
"type resistance"},
|
||||||
|
|
||||||
"cscale", CSCALE, 2, 2,
|
{"cscale", CSCALE, 2, 2,
|
||||||
"capacitance-scalefactor",
|
"capacitance-scalefactor"},
|
||||||
|
|
||||||
"defaultareacap", DEFAULTAREACAP, 4, 6,
|
{"defaultareacap", DEFAULTAREACAP, 4, 6,
|
||||||
"types plane capacitance",
|
"types plane capacitance"},
|
||||||
|
|
||||||
"defaultoverlap", DEFAULTOVERLAP, 6, 6,
|
{"defaultoverlap", DEFAULTOVERLAP, 6, 6,
|
||||||
"types plane otertypes otherplane capacitance",
|
"types plane otertypes otherplane capacitance"},
|
||||||
|
|
||||||
"defaultperimeter", DEFAULTPERIMETER, 4, 6,
|
{"defaultperimeter", DEFAULTPERIMETER, 4, 6,
|
||||||
"types plane capacitance",
|
"types plane capacitance"},
|
||||||
|
|
||||||
"defaultsideoverlap", DEFAULTSIDEOVERLAP, 6, 6,
|
{"defaultsideoverlap", DEFAULTSIDEOVERLAP, 6, 6,
|
||||||
"types plane othertypes otherplane capacitance",
|
"types plane othertypes otherplane capacitance"},
|
||||||
|
|
||||||
"defaultsidewall", DEFAULTSIDEWALL, 4, 5,
|
{"defaultsidewall", DEFAULTSIDEWALL, 4, 5,
|
||||||
"types plane capacitance [offset]",
|
"types plane capacitance [offset]"},
|
||||||
|
|
||||||
"device", DEVICE, 4, 10,
|
{"device", DEVICE, 4, 10,
|
||||||
"device dev-type types options...",
|
"device dev-type types options..."},
|
||||||
|
|
||||||
"fet", FET, 8, 9,
|
{"fet", FET, 8, 9,
|
||||||
"types terminal-types min-#-terminals name [subs-types] subs-node gscap gate-chan-cap",
|
"types terminal-types min-#-terminals name [subs-types] subs-node gscap gate-chan-cap"},
|
||||||
|
|
||||||
"fetresist", FETRESIST, 4, 4,
|
{"fetresist", FETRESIST, 4, 4,
|
||||||
"type region ohms-per-square",
|
"type region ohms-per-square"},
|
||||||
|
|
||||||
"fringeshieldhalo", FRINGESHIELDHALO, 2, 2,
|
{"fringeshieldhalo", FRINGESHIELDHALO, 2, 2,
|
||||||
"distance",
|
"distance"},
|
||||||
|
|
||||||
"height", HEIGHT, 4, 4,
|
{"height", HEIGHT, 4, 4,
|
||||||
"type height-above-subtrate thickness",
|
"type height-above-subtrate thickness"},
|
||||||
|
|
||||||
"antenna", ANTENNA, 4, 6,
|
{"antenna", ANTENNA, 4, 6,
|
||||||
"type [calc-type] [antenna-ratio-proportional] antenna-ratio-const",
|
"type [calc-type] [antenna-ratio-proportional] antenna-ratio-const"},
|
||||||
|
|
||||||
"model", MODEL, 2, 3,
|
{"model", MODEL, 2, 3,
|
||||||
"partial-cumulative [area-sidewall]",
|
"partial-cumulative [area-sidewall]"},
|
||||||
|
|
||||||
"tiedown", TIEDOWN, 2, 2,
|
{"tiedown", TIEDOWN, 2, 2,
|
||||||
"types",
|
"types"},
|
||||||
|
|
||||||
"lambda", LAMBDA, 2, 2,
|
{"lambda", LAMBDA, 2, 2,
|
||||||
"units-per-lambda",
|
"units-per-lambda"},
|
||||||
|
|
||||||
"overlap", OVERC, 4, 5,
|
{"overlap", OVERC, 4, 5,
|
||||||
"toptypes bottomtypes capacitance [shieldtypes]",
|
"toptypes bottomtypes capacitance [shieldtypes]"},
|
||||||
|
|
||||||
"perimc", PERIMC, 4, 4,
|
{"perimc", PERIMC, 4, 4,
|
||||||
"intypes outtypes capacitance",
|
"intypes outtypes capacitance"},
|
||||||
|
|
||||||
"planeorder", PLANEORDER, 3, 3,
|
{"planeorder", PLANEORDER, 3, 3,
|
||||||
"plane index",
|
"plane index"},
|
||||||
"noplaneordering", NOPLANEORDER, 1, 1,
|
{"noplaneordering", NOPLANEORDER, 1, 1,
|
||||||
"(no arguments needed)",
|
"(no arguments needed)"},
|
||||||
|
|
||||||
"resist", RESIST, 3, 4,
|
{"resist", RESIST, 3, 4,
|
||||||
"types resistance",
|
"types resistance"},
|
||||||
|
|
||||||
"rscale", RSCALE, 2, 2,
|
{"rscale", RSCALE, 2, 2,
|
||||||
"resistance-scalefactor",
|
"resistance-scalefactor"},
|
||||||
|
|
||||||
"sidehalo", SIDEHALO, 2, 2,
|
{"sidehalo", SIDEHALO, 2, 2,
|
||||||
"distance",
|
"distance"},
|
||||||
|
|
||||||
"sideoverlap", SIDEOVERLAP, 5, 6,
|
{"sideoverlap", SIDEOVERLAP, 5, 6,
|
||||||
"intypes outtypes ovtypes capacitance [shieldtypes]",
|
"intypes outtypes ovtypes capacitance [shieldtypes]"},
|
||||||
|
|
||||||
"sidewall", SIDEWALL, 6, 7,
|
{"sidewall", SIDEWALL, 6, 7,
|
||||||
"intypes outtypes neartypes fartypes capacitance [offset]",
|
"intypes outtypes neartypes fartypes capacitance [offset]"},
|
||||||
|
|
||||||
"step", STEP, 2, 2,
|
{"step", STEP, 2, 2,
|
||||||
"size",
|
"size"},
|
||||||
|
|
||||||
"style", STYLE, 2, 4,
|
{"style", STYLE, 2, 4,
|
||||||
"stylename",
|
"stylename"},
|
||||||
|
|
||||||
"substrate", SUBSTRATE, 3, 5,
|
{"substrate", SUBSTRATE, 3, 5,
|
||||||
"types plane [subs-node]",
|
"types plane [subs-node]"},
|
||||||
|
|
||||||
"units", UNITS, 2, 2,
|
{"units", UNITS, 2, 2,
|
||||||
"lambda|microns",
|
"lambda|microns"},
|
||||||
|
|
||||||
"variants", VARIANT, 2, 2,
|
{"variants", VARIANT, 2, 2,
|
||||||
"style,...",
|
"style,..."},
|
||||||
|
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -202,43 +202,43 @@ static keydesc keyTable[] = {
|
||||||
/* types are enumerated in extract.h */
|
/* types are enumerated in extract.h */
|
||||||
|
|
||||||
static keydesc devTable[] = {
|
static keydesc devTable[] = {
|
||||||
"mosfet", DEV_MOSFET, 5, 10,
|
{"mosfet", DEV_MOSFET, 5, 10,
|
||||||
"name gate-types src-types [drn-types] sub-types|None sub-node [gscap gccap]",
|
"name gate-types src-types [drn-types] sub-types|None sub-node [gscap gccap]"},
|
||||||
|
|
||||||
"bjt", DEV_BJT, 5, 5,
|
{"bjt", DEV_BJT, 5, 5,
|
||||||
"name base-types emitter-types collector-types",
|
"name base-types emitter-types collector-types"},
|
||||||
|
|
||||||
"capacitor", DEV_CAP, 4, 8,
|
{"capacitor", DEV_CAP, 4, 8,
|
||||||
"name top-types bottom-types [sub-types|None sub-node] [[perimcap] areacap]",
|
"name top-types bottom-types [sub-types|None sub-node] [[perimcap] areacap]"},
|
||||||
|
|
||||||
"capreverse", DEV_CAPREV, 4, 8,
|
{"capreverse", DEV_CAPREV, 4, 8,
|
||||||
"name bottom-types top-types [sub-types|None sub-node] [[perimcap] areacap]",
|
"name bottom-types top-types [sub-types|None sub-node] [[perimcap] areacap]"},
|
||||||
|
|
||||||
"resistor", DEV_RES, 4, 6,
|
{"resistor", DEV_RES, 4, 6,
|
||||||
"name|None res-types terminal-types [sub-types|None sub-node]",
|
"name|None res-types terminal-types [sub-types|None sub-node]"},
|
||||||
|
|
||||||
"diode", DEV_DIODE, 4, 6,
|
{"diode", DEV_DIODE, 4, 6,
|
||||||
"name pos-types neg-types [sub-types|None sub-node]",
|
"name pos-types neg-types [sub-types|None sub-node]"},
|
||||||
|
|
||||||
"pdiode", DEV_PDIODE, 4, 6,
|
{"pdiode", DEV_PDIODE, 4, 6,
|
||||||
"name pos-types neg-types [sub-types|None sub-node]",
|
"name pos-types neg-types [sub-types|None sub-node]"},
|
||||||
|
|
||||||
"ndiode", DEV_NDIODE, 4, 6,
|
{"ndiode", DEV_NDIODE, 4, 6,
|
||||||
"name neg-types pos-types [sub-types|None sub-node]",
|
"name neg-types pos-types [sub-types|None sub-node]"},
|
||||||
|
|
||||||
"subcircuit", DEV_SUBCKT, 3, 11,
|
{"subcircuit", DEV_SUBCKT, 3, 11,
|
||||||
"name dev-types [N] [term1-types ... termN-types [sub-types|None sub-node]] [options]",
|
"name dev-types [N] [term1-types ... termN-types [sub-types|None sub-node]] [options]"},
|
||||||
|
|
||||||
"rsubcircuit", DEV_RSUBCKT, 4, 7,
|
{"rsubcircuit", DEV_RSUBCKT, 4, 7,
|
||||||
"name dev-types terminal-types [sub-types|None sub-node] [options]",
|
"name dev-types terminal-types [sub-types|None sub-node] [options]"},
|
||||||
|
|
||||||
"msubcircuit", DEV_MSUBCKT, 3, 11,
|
{"msubcircuit", DEV_MSUBCKT, 3, 11,
|
||||||
"name dev-types [N] [term1-types ... termN-types [sub-types|None sub-node]] [options]",
|
"name dev-types [N] [term1-types ... termN-types [sub-types|None sub-node]] [options]"},
|
||||||
|
|
||||||
"csubcircuit", DEV_CSUBCKT, 4, 7,
|
{"csubcircuit", DEV_CSUBCKT, 4, 7,
|
||||||
"name dev-types terminal-types [sub-types|None sub-node] [options]",
|
"name dev-types terminal-types [sub-types|None sub-node] [options]"},
|
||||||
|
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef MAGIC_WRAPPER
|
#ifdef MAGIC_WRAPPER
|
||||||
|
|
|
||||||
|
|
@ -128,22 +128,22 @@ ExtractTest(w, cmd)
|
||||||
char *cmd_name;
|
char *cmd_name;
|
||||||
cmdType cmd_val;
|
cmdType cmd_val;
|
||||||
} cmds[] = {
|
} cmds[] = {
|
||||||
"clrdebug", CLRDEBUG,
|
{"clrdebug", CLRDEBUG},
|
||||||
"clrlength", CLRLENGTH,
|
{"clrlength", CLRLENGTH},
|
||||||
"driver", DRIVER,
|
{"driver", DRIVER},
|
||||||
"dump", DUMP,
|
{"dump", DUMP},
|
||||||
"interactions", INTERACTIONS,
|
{"interactions", INTERACTIONS},
|
||||||
"intercount", INTERCOUNT,
|
{"intercount", INTERCOUNT},
|
||||||
"parents", EXTPARENTS,
|
{"parents", EXTPARENTS},
|
||||||
"receiver", RECEIVER,
|
{"receiver", RECEIVER},
|
||||||
"setdebug", SETDEBUG,
|
{"setdebug", SETDEBUG},
|
||||||
"showdebug", SHOWDEBUG,
|
{"showdebug", SHOWDEBUG},
|
||||||
"showparents", SHOWPARENTS,
|
{"showparents", SHOWPARENTS},
|
||||||
"showtech", SHOWTECH,
|
{"showtech", SHOWTECH},
|
||||||
"stats", STATS,
|
{"stats", STATS},
|
||||||
"step", STEP,
|
{"step", STEP},
|
||||||
"times", TIME,
|
{"times", TIME},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (cmd->tx_argc == 1)
|
if (cmd->tx_argc == 1)
|
||||||
|
|
|
||||||
|
|
@ -98,10 +98,10 @@ GATest(w, cmd)
|
||||||
char *cmd_name;
|
char *cmd_name;
|
||||||
cmdType cmd_val;
|
cmdType cmd_val;
|
||||||
} cmds[] = {
|
} cmds[] = {
|
||||||
"clrdebug", CLRDEBUG,
|
{"clrdebug", CLRDEBUG},
|
||||||
"setdebug", SETDEBUG,
|
{"setdebug", SETDEBUG},
|
||||||
"showdebug", SHOWDEBUG,
|
{"showdebug", SHOWDEBUG},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
GAInit();
|
GAInit();
|
||||||
|
|
@ -388,17 +388,17 @@ GAInit()
|
||||||
char *di_name;
|
char *di_name;
|
||||||
int *di_id;
|
int *di_id;
|
||||||
} dflags[] = {
|
} dflags[] = {
|
||||||
"chanonly", &gaDebChanOnly,
|
{"chanonly", &gaDebChanOnly},
|
||||||
"chanstats", &gaDebChanStats,
|
{"chanstats", &gaDebChanStats},
|
||||||
"maze", &gaDebMaze,
|
{"maze", &gaDebMaze},
|
||||||
"nosimple", &gaDebNoSimple,
|
{"nosimple", &gaDebNoSimple},
|
||||||
"paintstems", &gaDebPaintStems,
|
{"paintstems", &gaDebPaintStems},
|
||||||
"showchans", &gaDebShowChans,
|
{"showchans", &gaDebShowChans},
|
||||||
"showmaze", &gaDebShowMaze,
|
{"showmaze", &gaDebShowMaze},
|
||||||
"stems", &gaDebStems,
|
{"stems", &gaDebStems},
|
||||||
"verbose", &gaDebVerbose,
|
{"verbose", &gaDebVerbose},
|
||||||
"noclean", &gaDebNoClean,
|
{"noclean", &gaDebNoClean},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (gaInitialized)
|
if (gaInitialized)
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,7 @@ extern void GrClipTriangle();
|
||||||
* lintpick happy!
|
* lintpick happy!
|
||||||
*/
|
*/
|
||||||
|
|
||||||
global Rect GrCrossRect = {-GR_CROSSSIZE, -GR_CROSSSIZE, GR_CROSSSIZE, GR_CROSSSIZE};
|
global Rect GrCrossRect = {{-GR_CROSSSIZE, -GR_CROSSSIZE}, {GR_CROSSSIZE, GR_CROSSSIZE}};
|
||||||
global int GrNumClipBoxes = 0; /* for benchmarking */
|
global int GrNumClipBoxes = 0; /* for benchmarking */
|
||||||
global int grCurDStyle;
|
global int grCurDStyle;
|
||||||
global unsigned char GrGridMultiple = 1;
|
global unsigned char GrGridMultiple = 1;
|
||||||
|
|
|
||||||
|
|
@ -80,7 +80,7 @@ global int GrPixelCorrect = 1;
|
||||||
/* The following rectangle is describes the display area and is available
|
/* The following rectangle is describes the display area and is available
|
||||||
* to the user of this module.
|
* to the user of this module.
|
||||||
*/
|
*/
|
||||||
global Rect GrScreenRect = {0, 0, 0, 0};
|
global Rect GrScreenRect = {{0, 0}, {0, 0}};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Interrupt status for the timer. In TCL, this is used for graphics
|
* Interrupt status for the timer. In TCL, this is used for graphics
|
||||||
|
|
|
||||||
|
|
@ -124,12 +124,12 @@ GlTest(w, cmd)
|
||||||
char *cmd_name;
|
char *cmd_name;
|
||||||
cmdType cmd_val;
|
cmdType cmd_val;
|
||||||
} cmds[] = {
|
} cmds[] = {
|
||||||
"clrdebug", CLRDEBUG,
|
{"clrdebug", CLRDEBUG},
|
||||||
"onlynet", ONLYNET,
|
{"onlynet", ONLYNET},
|
||||||
"setdebug", SETDEBUG,
|
{"setdebug", SETDEBUG},
|
||||||
"showdebug", SHOWDEBUG,
|
{"showdebug", SHOWDEBUG},
|
||||||
"sides", SIDES,
|
{"sides", SIDES},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!glInitialized)
|
if (!glInitialized)
|
||||||
|
|
@ -262,24 +262,24 @@ GlInit()
|
||||||
char *di_name;
|
char *di_name;
|
||||||
int *di_id;
|
int *di_id;
|
||||||
} dflags[] = {
|
} dflags[] = {
|
||||||
"allpoints", &glDebAllPoints,
|
{"allpoints", &glDebAllPoints},
|
||||||
"chan", &glDebChan,
|
{"chan", &glDebChan},
|
||||||
"cross", &glDebCross,
|
{"cross", &glDebCross},
|
||||||
"fast", &glDebFast,
|
{"fast", &glDebFast},
|
||||||
"heap", &glDebHeap,
|
{"heap", &glDebHeap},
|
||||||
"histo", &glDebHisto,
|
{"histo", &glDebHisto},
|
||||||
"log", &glDebLog,
|
{"log", &glDebLog},
|
||||||
"greedy", &glDebGreedy,
|
{"greedy", &glDebGreedy},
|
||||||
"maze", &glDebMaze,
|
{"maze", &glDebMaze},
|
||||||
"net", &glDebNet,
|
{"net", &glDebNet},
|
||||||
"newheaps", &glDebNewHeaps,
|
{"newheaps", &glDebNewHeaps},
|
||||||
"penalties", &glDebPen,
|
{"penalties", &glDebPen},
|
||||||
"showpins", &glDebShowPins,
|
{"showpins", &glDebShowPins},
|
||||||
"stemsonly", &glDebStemsOnly,
|
{"stemsonly", &glDebStemsOnly},
|
||||||
"straight", &glDebStraight,
|
{"straight", &glDebStraight},
|
||||||
"tiles", &glDebTiles,
|
{"tiles", &glDebTiles},
|
||||||
"verbose", &glDebVerbose,
|
{"verbose", &glDebVerbose},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
if (glInitialized)
|
if (glInitialized)
|
||||||
|
|
|
||||||
|
|
@ -110,8 +110,8 @@ irSetNoisyAutoInt(parm, valueS, file)
|
||||||
char *sv_name; /* name */
|
char *sv_name; /* name */
|
||||||
int sv_type;
|
int sv_type;
|
||||||
} specialValues[] = {
|
} specialValues[] = {
|
||||||
"automatic", V_AUTOMATIC,
|
{"automatic", V_AUTOMATIC},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* If value non-null set parm */
|
/* If value non-null set parm */
|
||||||
|
|
@ -679,9 +679,9 @@ FILE *file;
|
||||||
char *sp_name; /* name */
|
char *sp_name; /* name */
|
||||||
int sp_type;
|
int sp_type;
|
||||||
} specialArgs[] = {
|
} specialArgs[] = {
|
||||||
"command", SP_COMMAND,
|
{"command", SP_COMMAND},
|
||||||
".", SP_DOT,
|
{".", SP_DOT},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
if(s!=NULL)
|
if(s!=NULL)
|
||||||
|
|
@ -785,11 +785,11 @@ static struct
|
||||||
void (*cP_proc)(); /* Procedure processing this parameter */
|
void (*cP_proc)(); /* Procedure processing this parameter */
|
||||||
#endif
|
#endif
|
||||||
} cParms[] = {
|
} cParms[] = {
|
||||||
"active", irCSetActive,
|
{"active", irCSetActive},
|
||||||
"width", irCSetWidth,
|
{"width", irCSetWidth},
|
||||||
"length", irCSetLength,
|
{"length", irCSetLength},
|
||||||
"cost", irCSetCost,
|
{"cost", irCSetCost},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* NEXTVALUE - returns pointer to next value arg (string). */
|
/* NEXTVALUE - returns pointer to next value arg (string). */
|
||||||
|
|
@ -1154,15 +1154,15 @@ static struct
|
||||||
void (*lP_proc)(); /* procedure processing this parameter */
|
void (*lP_proc)(); /* procedure processing this parameter */
|
||||||
#endif
|
#endif
|
||||||
} lParms[] = {
|
} lParms[] = {
|
||||||
"active", irLSetActive,
|
{"active", irLSetActive},
|
||||||
"width", irLSetWidth,
|
{"width", irLSetWidth},
|
||||||
"length", irLSetLength,
|
{"length", irLSetLength},
|
||||||
"hCost", irLSetHCost,
|
{"hCost", irLSetHCost},
|
||||||
"vCost", irLSetVCost,
|
{"vCost", irLSetVCost},
|
||||||
"jogCost", irLSetJogCost,
|
{"jogCost", irLSetJogCost},
|
||||||
"hintCost", irLSetHintCost,
|
{"hintCost", irLSetHintCost},
|
||||||
"overCost", irLSetOverCost,
|
{"overCost", irLSetOverCost},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* NEXTVALUE - returns pointer to next value arg (string). */
|
/* NEXTVALUE - returns pointer to next value arg (string). */
|
||||||
|
|
@ -1747,9 +1747,9 @@ static struct
|
||||||
char *srP_name; /* name of parameter */
|
char *srP_name; /* name of parameter */
|
||||||
void (*srP_proc)(); /* Procedure processing this parameter */
|
void (*srP_proc)(); /* Procedure processing this parameter */
|
||||||
} srParms[] = {
|
} srParms[] = {
|
||||||
"rate", irSrSetRate,
|
{"rate", irSrSetRate},
|
||||||
"width", irSrSetWidth,
|
{"width", irSrSetWidth},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -1868,11 +1868,11 @@ irSpacingsCmd(w, cmd)
|
||||||
char *sV_name; /* name of value */
|
char *sV_name; /* name of value */
|
||||||
int sV_value; /* corresponding interger value */
|
int sV_value; /* corresponding interger value */
|
||||||
} sValue[] = {
|
} sValue[] = {
|
||||||
"n", -1,
|
{"n", -1},
|
||||||
"nil", -1,
|
{"nil", -1},
|
||||||
"none", -1,
|
{"none", -1},
|
||||||
"null", -1,
|
{"null", -1},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Subcell Table */
|
/* Subcell Table */
|
||||||
|
|
@ -1881,8 +1881,8 @@ irSpacingsCmd(w, cmd)
|
||||||
char *sT_name; /* name of value */
|
char *sT_name; /* name of value */
|
||||||
int sT_value; /* corresponding interger value */
|
int sT_value; /* corresponding interger value */
|
||||||
} subcellTable[] = {
|
} subcellTable[] = {
|
||||||
"subcell", TT_SUBCELL,
|
{"subcell", TT_SUBCELL},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Process by case */
|
/* Process by case */
|
||||||
|
|
@ -2238,15 +2238,15 @@ static struct
|
||||||
char *wzdP_name; /* name of parameter */
|
char *wzdP_name; /* name of parameter */
|
||||||
void (*wzdP_proc)(); /* Procedure processing this parameter */
|
void (*wzdP_proc)(); /* Procedure processing this parameter */
|
||||||
} wzdParms[] = {
|
} wzdParms[] = {
|
||||||
"bloom", irWzdSetBloomCost,
|
{"bloom", irWzdSetBloomCost},
|
||||||
"bloomLimit", irWzdSetBloomLimit,
|
{"bloomLimit", irWzdSetBloomLimit},
|
||||||
"boundsIncrement", irWzdSetBoundsIncrement,
|
{"boundsIncrement", irWzdSetBoundsIncrement},
|
||||||
"estimate", irWzdSetEstimate,
|
{"estimate", irWzdSetEstimate},
|
||||||
"expandEndpoints", irWzdSetExpandEndpoints,
|
{"expandEndpoints", irWzdSetExpandEndpoints},
|
||||||
"penalty", irWzdSetPenalty,
|
{"penalty", irWzdSetPenalty},
|
||||||
"penetration", irWzdSetPenetration,
|
{"penetration", irWzdSetPenetration},
|
||||||
"window", irWzdSetWindow,
|
{"window", irWzdSetWindow},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -2510,21 +2510,21 @@ irSaveParametersCmd(w, cmd)
|
||||||
/*--- Subcommand Table ---*/
|
/*--- Subcommand Table ---*/
|
||||||
|
|
||||||
SubCmdTableE irSubcommands[] = {
|
SubCmdTableE irSubcommands[] = {
|
||||||
"contacts", irContactsCmd,
|
{"contacts", irContactsCmd,
|
||||||
"set route-contact parameters",
|
"set route-contact parameters",
|
||||||
"contacts [type] [parameter] [value1] ... [valuen]\n\
|
"contacts [type] [parameter] [value1] ... [valuen]\n\
|
||||||
\t(can use '*' for type or parameter)",
|
\t(can use '*' for type or parameter)"},
|
||||||
|
|
||||||
"help", irHelpCmd,
|
{"help", irHelpCmd,
|
||||||
"summarize iroute subcommands",
|
"summarize iroute subcommands",
|
||||||
"help [subcommand]",
|
"help [subcommand]"},
|
||||||
|
|
||||||
"layers", irLayersCmd,
|
{"layers", irLayersCmd,
|
||||||
"set route-layer parameters",
|
"set route-layer parameters",
|
||||||
"layers [type] [parameter] [value1] ... [valuen]\n\
|
"layers [type] [parameter] [value1] ... [valuen]\n\
|
||||||
\t(can use '*' for type or parameter)",
|
\t(can use '*' for type or parameter)"},
|
||||||
|
|
||||||
"route", irRouteCmd,
|
{"route", irRouteCmd,
|
||||||
"connect point to node(s)",
|
"connect point to node(s)",
|
||||||
"route [options]\n\
|
"route [options]\n\
|
||||||
\t-sLayers layers = layers route may start on.\n\
|
\t-sLayers layers = layers route may start on.\n\
|
||||||
|
|
@ -2535,38 +2535,38 @@ SubCmdTableE irSubcommands[] = {
|
||||||
\t-dBox = route to box (DEFAULT)\n\
|
\t-dBox = route to box (DEFAULT)\n\
|
||||||
\t-dLabel name = route to label of given name\n\
|
\t-dLabel name = route to label of given name\n\
|
||||||
\t-dRect xbot ybot xtop ytop = route to rectangle of given coordinates\n\
|
\t-dRect xbot ybot xtop ytop = route to rectangle of given coordinates\n\
|
||||||
\t-dSelection = route to selection",
|
\t-dSelection = route to selection"},
|
||||||
|
|
||||||
"saveParameters", irSaveParametersCmd,
|
{"saveParameters", irSaveParametersCmd,
|
||||||
"write out all irouter parameters\n\
|
"write out all irouter parameters\n\
|
||||||
\t(can be read back with :source)",
|
\t(can be read back with :source)",
|
||||||
"saveParameters <filename>",
|
"saveParameters <filename>"},
|
||||||
|
|
||||||
"search", irSearchCmd,
|
{"search", irSearchCmd,
|
||||||
"set parameters controlling the internal search for routes",
|
"set parameters controlling the internal search for routes",
|
||||||
"search [searchParameter] [value]",
|
"search [searchParameter] [value]"},
|
||||||
|
|
||||||
"spacings", irSpacingsCmd,
|
{"spacings", irSpacingsCmd,
|
||||||
"set minimum spacing between route-type and arbitrary type",
|
"set minimum spacing between route-type and arbitrary type",
|
||||||
"spacings [route-type] [type] [spacing] ... [typen spacingn]\n\
|
"spacings [route-type] [type] [spacing] ... [typen spacingn]\n\
|
||||||
\t(types can be 'SUBCELL', spacing can be 'nil')\n\
|
\t(types can be 'SUBCELL', spacing can be 'nil')\n\
|
||||||
iroute spacings CLEAR\n\
|
iroute spacings CLEAR\n\
|
||||||
\t(sets all spacings to nil)",
|
\t(sets all spacings to nil)"},
|
||||||
|
|
||||||
"verbosity", irVerbosityCmd,
|
{"verbosity", irVerbosityCmd,
|
||||||
"control the amount of messages printed",
|
"control the amount of messages printed",
|
||||||
"verbosity [level]\n\
|
"verbosity [level]\n\
|
||||||
\t(0 = errors and warnings only, 1 = brief, 2 = lots of statistics)",
|
\t(0 = errors and warnings only, 1 = brief, 2 = lots of statistics)"},
|
||||||
|
|
||||||
"version", irVersionCmd,
|
{"version", irVersionCmd,
|
||||||
"identify irouter version",
|
"identify irouter version",
|
||||||
"version",
|
"version"},
|
||||||
|
|
||||||
"wizard", irWizardCmd,
|
{"wizard", irWizardCmd,
|
||||||
"set miscellaneous parameters",
|
"set miscellaneous parameters",
|
||||||
"wizard [wizardParameter] [value]",
|
"wizard [wizardParameter] [value]"},
|
||||||
|
|
||||||
0
|
{0}
|
||||||
}, *subCmdP;
|
}, *subCmdP;
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
||||||
|
|
@ -99,9 +99,9 @@ IRDebugInit()
|
||||||
char *di_name;
|
char *di_name;
|
||||||
int *di_id;
|
int *di_id;
|
||||||
} dflags[] = {
|
} dflags[] = {
|
||||||
"endpts", &irDebEndPts,
|
{"endpts", &irDebEndPts},
|
||||||
"noclean", &irDebNoClean,
|
{"noclean", &irDebNoClean},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Register with debug module */
|
/* Register with debug module */
|
||||||
|
|
|
||||||
|
|
@ -220,20 +220,20 @@ irParmsTstCmd(w, cmd)
|
||||||
|
|
||||||
/*--------------------------- Command Table ------------------------------ */
|
/*--------------------------- Command Table ------------------------------ */
|
||||||
TestCmdTableE irTestCommands[] = {
|
TestCmdTableE irTestCommands[] = {
|
||||||
"debug", irDebugTstCmd,
|
{"debug", irDebugTstCmd,
|
||||||
"set or clear debug flags",
|
"set or clear debug flags",
|
||||||
"debug [flag] [value]",
|
"debug [flag] [value]"},
|
||||||
|
|
||||||
"help", irHelpTstCmd,
|
{"help", irHelpTstCmd,
|
||||||
"summarize *iroute subcommands",
|
"summarize *iroute subcommands",
|
||||||
"help [subcommand]",
|
"help [subcommand]"},
|
||||||
|
|
||||||
"parms", irParmsTstCmd,
|
{"parms", irParmsTstCmd,
|
||||||
"print internal data structures",
|
"print internal data structures",
|
||||||
"parms",
|
"parms"},
|
||||||
|
|
||||||
0
|
{0}
|
||||||
}, *irTestCmdP;
|
}, *irTestCmdP;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -111,9 +111,9 @@ MZInit()
|
||||||
char *di_name;
|
char *di_name;
|
||||||
int *di_id;
|
int *di_id;
|
||||||
} dflags[] = {
|
} dflags[] = {
|
||||||
"steppath", &mzDebStep,
|
{"steppath", &mzDebStep},
|
||||||
"maze", &mzDebMaze,
|
{"maze", &mzDebMaze},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Register with debug module */
|
/* Register with debug module */
|
||||||
|
|
|
||||||
|
|
@ -817,8 +817,8 @@ mzTechSpacing(argc, argv)
|
||||||
char *sT_name; /* name of value */
|
char *sT_name; /* name of value */
|
||||||
int sT_value; /* corresponding interger value */
|
int sT_value; /* corresponding interger value */
|
||||||
} subcellTable[] = {
|
} subcellTable[] = {
|
||||||
"subcell", TT_SUBCELL,
|
{"subcell", TT_SUBCELL},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* check number of arguments */
|
/* check number of arguments */
|
||||||
|
|
|
||||||
|
|
@ -537,40 +537,40 @@ mzVersionCmd(w, cmd)
|
||||||
/*--------------------------- Command Table ------------------------------ */
|
/*--------------------------- Command Table ------------------------------ */
|
||||||
|
|
||||||
TestCmdTableE mzTestCommands[] = {
|
TestCmdTableE mzTestCommands[] = {
|
||||||
"debug", mzDebugTstCmd,
|
{"debug", mzDebugTstCmd,
|
||||||
"set or clear debug flags",
|
"set or clear debug flags",
|
||||||
"debug [flag] [value]",
|
"debug [flag] [value]"},
|
||||||
|
|
||||||
"dumpEstimates", mzDumpEstimatesTstCmd,
|
{"dumpEstimates", mzDumpEstimatesTstCmd,
|
||||||
"print global estimate info for tiles under box",
|
"print global estimate info for tiles under box",
|
||||||
"dumpEstimates",
|
"dumpEstimates"},
|
||||||
|
|
||||||
"dumpTags", mzDumpTagsTstCmd,
|
{"dumpTags", mzDumpTagsTstCmd,
|
||||||
"print tag info on data tiles under box",
|
"print tag info on data tiles under box",
|
||||||
"dumpTags",
|
"dumpTags"},
|
||||||
|
|
||||||
"help", mzHelpTstCmd,
|
{"help", mzHelpTstCmd,
|
||||||
"summarize *mzroute subcommands",
|
"summarize *mzroute subcommands",
|
||||||
"help [subcommand]",
|
"help [subcommand]"},
|
||||||
|
|
||||||
"numberLine", mzNumberLineTstCmd,
|
{"numberLine", mzNumberLineTstCmd,
|
||||||
"exercise numberline code",
|
"exercise numberline code",
|
||||||
"numberLine",
|
"numberLine"},
|
||||||
|
|
||||||
"parms", mzParmsTstCmd,
|
{"parms", mzParmsTstCmd,
|
||||||
"print internal data structures",
|
"print internal data structures",
|
||||||
"parms",
|
"parms"},
|
||||||
|
|
||||||
"plane", mzPlaneTstCmd,
|
{"plane", mzPlaneTstCmd,
|
||||||
"make internal tile plane visible",
|
"make internal tile plane visible",
|
||||||
"plane [plane]",
|
"plane [plane]"},
|
||||||
|
|
||||||
"version", mzVersionCmd,
|
{"version", mzVersionCmd,
|
||||||
"identify mzrouter version",
|
"identify mzrouter version",
|
||||||
"version",
|
"version"},
|
||||||
|
|
||||||
0
|
{0}
|
||||||
}, *mzTestCmdP;
|
}, *mzTestCmdP;
|
||||||
|
|
||||||
void
|
void
|
||||||
MZTest(w, cmd)
|
MZTest(w, cmd)
|
||||||
|
|
|
||||||
|
|
@ -59,46 +59,46 @@ extern void nmNotDefined();
|
||||||
|
|
||||||
NetButton NMButtons[] =
|
NetButton NMButtons[] =
|
||||||
{
|
{
|
||||||
NULL, STYLE_ORANGE1, 0, 200, 80, 210,
|
{NULL, STYLE_ORANGE1, {{0, 200}, {80, 210}},
|
||||||
NMGetLabels, NULL, NMNextLabel, NULL, NMNextLabel, NULL,
|
NMGetLabels, NULL, NMNextLabel, NULL, NMNextLabel, NULL},
|
||||||
NULL, STYLE_ERASEALL, 0, 174, 24, 198,
|
{NULL, STYLE_ERASEALL, {{0, 174}, {24, 198}},
|
||||||
NMPutLabel, NULL, NMReOrientLabel, NULL, NMReOrientLabel, NULL,
|
NMPutLabel, NULL, NMReOrientLabel, NULL, NMReOrientLabel, NULL},
|
||||||
NULL, STYLE_ORANGE1, 42, 188, 59, 198,
|
{NULL, STYLE_ORANGE1, {{42, 188}, {59, 198}},
|
||||||
NMChangeNum, NULL, NMChangeNum, NULL, NMChangeNum, NULL,
|
NMChangeNum, NULL, NMChangeNum, NULL, NMChangeNum, NULL},
|
||||||
NULL, STYLE_ORANGE1, 63, 188, 80, 198,
|
{NULL, STYLE_ORANGE1, {{63, 188}, {80, 198}},
|
||||||
NMChangeNum, NULL, NMChangeNum, NULL, NMChangeNum, NULL,
|
NMChangeNum, NULL, NMChangeNum, NULL, NMChangeNum, NULL},
|
||||||
"Find", STYLE_ORANGE2, 42, 174, 80, 184,
|
{"Find", STYLE_ORANGE2, {{42, 174}, {80, 184}},
|
||||||
NMFindLabel, NULL, NMFindLabel, NULL, NMFindLabel, NULL,
|
NMFindLabel, NULL, NMFindLabel, NULL, NMFindLabel, NULL},
|
||||||
NULL, STYLE_GREEN1, 0, 150, 80, 160,
|
{NULL, STYLE_GREEN1, {{0, 150}, {80, 160}},
|
||||||
NMButtonNetList, NULL, NMButtonNetList, NULL, NMButtonNetList, NULL,
|
NMButtonNetList, NULL, NMButtonNetList, NULL, NMButtonNetList, NULL},
|
||||||
"Verify", STYLE_BLUE1, 0, 138, 38, 148,
|
{"Verify", STYLE_BLUE1, {{0, 138}, {38, 148}},
|
||||||
NMCmdVerify, NULL, NMCmdVerify, NULL, NMCmdVerify, NULL,
|
NMCmdVerify, NULL, NMCmdVerify, NULL, NMCmdVerify, NULL},
|
||||||
"Print", STYLE_BLUE2, 42, 138, 80, 148,
|
{"Print", STYLE_BLUE2, {{42, 138}, {80, 148}},
|
||||||
NMCmdPrint, NULL, NMCmdPrint, NULL, NMCmdPrint, NULL,
|
NMCmdPrint, NULL, NMCmdPrint, NULL, NMCmdPrint, NULL},
|
||||||
"Terms", STYLE_RED1, 0, 126, 38, 136,
|
{"Terms", STYLE_RED1, {{0, 126}, {38, 136}},
|
||||||
NMCmdShowterms, NULL, NMCmdShowterms, NULL, NMCmdShowterms, NULL,
|
NMCmdShowterms, NULL, NMCmdShowterms, NULL, NMCmdShowterms, NULL},
|
||||||
"Cleanup", STYLE_RED2, 42, 126, 80, 136,
|
{"Cleanup", STYLE_RED2, {{42, 126}, {80, 136}},
|
||||||
NMCmdCleanup, NULL, NMCmdCleanup, NULL, NMCmdCleanup, NULL,
|
NMCmdCleanup, NULL, NMCmdCleanup, NULL, NMCmdCleanup, NULL},
|
||||||
"No Net",STYLE_GRAY1, 0, 114, 38, 124,
|
{"No Net",STYLE_GRAY1, {{0, 114}, {38, 124}},
|
||||||
NMCmdDnet, NULL, NMCmdDnet, NULL, NMCmdDnet, NULL,
|
NMCmdDnet, NULL, NMCmdDnet, NULL, NMCmdDnet, NULL},
|
||||||
"Show",STYLE_YELLOW1, 42, 114, 80, 124,
|
{"Show",STYLE_YELLOW1, {{42, 114}, {80, 124}},
|
||||||
NMShowUnderBox, NULL, NMShowUnderBox, NULL, NMShowUnderBox, NULL,
|
NMShowUnderBox, NULL, NMShowUnderBox, NULL, NMShowUnderBox, NULL},
|
||||||
NULL, -1 /* -1 Signals end of list. */
|
{NULL, -1 /* -1 Signals end of list. */ }
|
||||||
};
|
};
|
||||||
|
|
||||||
NetLabel nmLabels[] =
|
NetLabel nmLabels[] =
|
||||||
{
|
{
|
||||||
"Label", STYLE_WHITE, 0, 212, 80, 222,
|
{"Label", STYLE_WHITE, {{0, 212}, {80, 222}}},
|
||||||
"Netlist", STYLE_WHITE, 0, 162, 80, 172,
|
{"Netlist", STYLE_WHITE, {{0, 162}, {80, 172}}},
|
||||||
NULL, -1 /* -1 signals end of list. */
|
{NULL, -1 /* -1 signals end of list. */ }
|
||||||
};
|
};
|
||||||
|
|
||||||
NetRect nmRects[] =
|
NetRect nmRects[] =
|
||||||
{
|
{
|
||||||
STYLE_BBOX, 8, 174, 16, 198,
|
{STYLE_BBOX, {{8, 174}, {16, 198}}},
|
||||||
STYLE_BBOX, 0, 182, 24, 190,
|
{STYLE_BBOX, {{0, 182}, {24, 190}}},
|
||||||
STYLE_BBOX, 12, 186, 12, 186,
|
{STYLE_BBOX, {{12, 186}, {12, 186}}},
|
||||||
-1 /* -1 signals end of list. */
|
{-1 /* -1 signals end of list. */ }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -106,8 +106,8 @@ NetRect nmRects[] =
|
||||||
* netlist menu, and the initial screen location of netlist menus.
|
* netlist menu, and the initial screen location of netlist menus.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
Rect nmSurfaceArea = {-4, 110, 84, 226};
|
Rect nmSurfaceArea = {{-4, 110}, {84, 226}};
|
||||||
Rect nmScreenArea = {0, 0, 140, 190};
|
Rect nmScreenArea = {{0, 0}, {140, 190}};
|
||||||
|
|
||||||
/* Only one netlist window is allowed to be open at once. This is it. */
|
/* Only one netlist window is allowed to be open at once. This is it. */
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -408,15 +408,15 @@ PlotColorVersTechLine(sectionName, argc, argv)
|
||||||
{
|
{
|
||||||
VersatecStyle *new;
|
VersatecStyle *new;
|
||||||
static struct { char *l_str; int l_color; } colors[] = {
|
static struct { char *l_str; int l_color; } colors[] = {
|
||||||
"black", BLACK,
|
{"black", BLACK},
|
||||||
"cyan", CYAN,
|
{"cyan", CYAN},
|
||||||
"magenta", MAGENTA,
|
{"magenta", MAGENTA},
|
||||||
"yellow", YELLOW,
|
{"yellow", YELLOW},
|
||||||
"K", BLACK,
|
{"K", BLACK},
|
||||||
"C", CYAN,
|
{"C", CYAN},
|
||||||
"M", MAGENTA,
|
{"M", MAGENTA},
|
||||||
"Y", YELLOW,
|
{"Y", YELLOW},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -182,11 +182,11 @@ PlowDRCLine(sectionName, argc, argv)
|
||||||
int rk_maxargs; /* Max # arguments */
|
int rk_maxargs; /* Max # arguments */
|
||||||
int (*rk_proc)(); /* Procedure implementing this keyword */
|
int (*rk_proc)(); /* Procedure implementing this keyword */
|
||||||
} ruleKeys[] = {
|
} ruleKeys[] = {
|
||||||
"edge", 8, 9, plowEdgeRule,
|
{"edge", 8, 9, plowEdgeRule},
|
||||||
"edge4way", 8, 9, plowEdgeRule,
|
{"edge4way", 8, 9, plowEdgeRule},
|
||||||
"spacing", 6, 6, plowSpacingRule,
|
{"spacing", 6, 6, plowSpacingRule},
|
||||||
"width", 4, 4, plowWidthRule,
|
{"width", 4, 4, plowWidthRule},
|
||||||
0
|
{0}
|
||||||
}, *rp;
|
}, *rp;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
||||||
|
|
@ -105,28 +105,28 @@ struct
|
||||||
pCmd p_cmd;
|
pCmd p_cmd;
|
||||||
char *p_help;
|
char *p_help;
|
||||||
} plowCmds[] = {
|
} plowCmds[] = {
|
||||||
"clrdebug", PC_CLRD, "flags",
|
{"clrdebug", PC_CLRD, "flags"},
|
||||||
"help", PC_HELP, "",
|
{"help", PC_HELP, ""},
|
||||||
"jogreduce", PC_JOG, "",
|
{"jogreduce", PC_JOG, ""},
|
||||||
"lwidth", PC_LWIDTH, "layers",
|
{"lwidth", PC_LWIDTH, "layers"},
|
||||||
"lshadow", PC_LSHADOW, "layers",
|
{"lshadow", PC_LSHADOW, "layers"},
|
||||||
"mergedown", PC_MERGEDOWN, "",
|
{"mergedown", PC_MERGEDOWN, ""},
|
||||||
"mergeup", PC_MERGEUP, "",
|
{"mergeup", PC_MERGEUP, ""},
|
||||||
"move", PC_MOVE, "",
|
{"move", PC_MOVE, ""},
|
||||||
"outline", PC_OUTLINE, "direction layers",
|
{"outline", PC_OUTLINE, "direction layers"},
|
||||||
"plow", PC_PLOW, "direction [layers]",
|
{"plow", PC_PLOW, "direction [layers]"},
|
||||||
"print", PC_PRINT, "",
|
{"print", PC_PRINT, ""},
|
||||||
"random", PC_RANDOM, "",
|
{"random", PC_RANDOM, ""},
|
||||||
"setdebug", PC_SETD, "flags",
|
{"setdebug", PC_SETD, "flags"},
|
||||||
"shadow", PC_SHADOW, "layers",
|
{"shadow", PC_SHADOW, "layers"},
|
||||||
"showdebug", PC_SHOWD, "",
|
{"showdebug", PC_SHOWD, ""},
|
||||||
"split", PC_SPLIT, "",
|
{"split", PC_SPLIT, ""},
|
||||||
"techshow", PC_TECHSHOW, "[file]",
|
{"techshow", PC_TECHSHOW, "[file]"},
|
||||||
"trail", PC_TRAIL, "[value]",
|
{"trail", PC_TRAIL, "[value]"},
|
||||||
"whenbot", PC_WHENBOT, "[xbot ybot]",
|
{"whenbot", PC_WHENBOT, "[xbot ybot]"},
|
||||||
"whentop", PC_WHENTOP, "[xtop ytop]",
|
{"whentop", PC_WHENTOP, "[xtop ytop]"},
|
||||||
"width", PC_WIDTH, "layers",
|
{"width", PC_WIDTH, "layers"},
|
||||||
0,
|
{0},
|
||||||
};
|
};
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
@ -457,14 +457,14 @@ plowDebugInit()
|
||||||
char *di_name;
|
char *di_name;
|
||||||
int *di_id;
|
int *di_id;
|
||||||
} debug[] = {
|
} debug[] = {
|
||||||
"addedge", &plowDebAdd,
|
{"addedge", &plowDebAdd},
|
||||||
"jogs", &plowDebJogs,
|
{"jogs", &plowDebJogs},
|
||||||
"moveedge", &plowDebMove,
|
{"moveedge", &plowDebMove},
|
||||||
"nextedge", &plowDebNext,
|
{"nextedge", &plowDebNext},
|
||||||
"time", &plowDebTime,
|
{"time", &plowDebTime},
|
||||||
"width", &plowDebWidth,
|
{"width", &plowDebWidth},
|
||||||
"yankall", &plowDebYankAll,
|
{"yankall", &plowDebYankAll},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Register ourselves with the debugging module */
|
/* Register ourselves with the debugging module */
|
||||||
|
|
|
||||||
|
|
@ -272,18 +272,18 @@ CmdGaRoute(w, cmd)
|
||||||
char *cmd_name;
|
char *cmd_name;
|
||||||
cmdType cmd_val;
|
cmdType cmd_val;
|
||||||
} cmds[] = {
|
} cmds[] = {
|
||||||
"channel xl yl xh yh [type]\n\
|
{"channel xl yl xh yh [type]\n\
|
||||||
channel [type] define a channel", CHANNEL,
|
channel [type] define a channel", CHANNEL},
|
||||||
"generate type [file] generate channel definition commands",
|
{"generate type [file] generate channel definition commands",
|
||||||
GEN,
|
GEN},
|
||||||
"help print this message", HELP,
|
{"help print this message", HELP},
|
||||||
"nowarn only warn if all locations of a terminal\n\
|
{"nowarn only warn if all locations of a terminal\n\
|
||||||
are unreachable", NOWARN,
|
are unreachable", NOWARN},
|
||||||
"route [netlist] route the current cell",ROUTE,
|
{"route [netlist] route the current cell",ROUTE},
|
||||||
"reset clear all channel definitions", RESET,
|
{"reset clear all channel definitions", RESET},
|
||||||
"warn leave feedback for each location of a\n\
|
{"warn leave feedback for each location of a\n\
|
||||||
terminal that is unreachable", WARN,
|
terminal that is unreachable", WARN},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
GAInit();
|
GAInit();
|
||||||
|
|
|
||||||
|
|
@ -66,7 +66,7 @@ static struct dirs /* List of directions for stems */
|
||||||
{
|
{
|
||||||
int dr_dir; /* Direction */
|
int dr_dir; /* Direction */
|
||||||
}
|
}
|
||||||
dirs[] = { GEO_NORTH, GEO_SOUTH, GEO_EAST, GEO_WEST, 0 };
|
dirs[] = { {GEO_NORTH}, {GEO_SOUTH}, {GEO_EAST}, {GEO_WEST}, {0} };
|
||||||
|
|
||||||
#define MAKEBOX(p, r, width, offset) { \
|
#define MAKEBOX(p, r, width, offset) { \
|
||||||
(r)->r_xbot = (p)->p_x + (offset); \
|
(r)->r_xbot = (p)->p_x + (offset); \
|
||||||
|
|
|
||||||
|
|
@ -193,7 +193,7 @@ SelRememberForUndo(before, def, area)
|
||||||
{
|
{
|
||||||
SelUndoEvent *sue;
|
SelUndoEvent *sue;
|
||||||
static SelUndoEvent *beforeEvent = NULL;
|
static SelUndoEvent *beforeEvent = NULL;
|
||||||
static Rect nullRect = {0, 0, -1, -1};
|
static Rect nullRect = {{0, 0}, {-1, -1}};
|
||||||
|
|
||||||
sue = (SelUndoEvent *) UndoNewEvent(SelUndoClientID, sizeof(SelUndoEvent));
|
sue = (SelUndoEvent *) UndoNewEvent(SelUndoClientID, sizeof(SelUndoEvent));
|
||||||
if (sue == NULL) return;
|
if (sue == NULL) return;
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ TiSetBody(tp, b)
|
||||||
* this area.
|
* this area.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
global Rect TiPlaneRect = { MINFINITY+2, MINFINITY+2, INFINITY-2, INFINITY-2 };
|
global Rect TiPlaneRect = { {MINFINITY+2, MINFINITY+2}, {INFINITY-2, INFINITY-2} };
|
||||||
|
|
||||||
#ifdef HAVE_SYS_MMAN_H
|
#ifdef HAVE_SYS_MMAN_H
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -74,8 +74,8 @@ global int GeoOppositePos[] =
|
||||||
*-------------------------------------------------------------------
|
*-------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
global Rect GeoNullRect = { 0, 0, 0, 0 };
|
global Rect GeoNullRect = { {0, 0}, {0, 0} };
|
||||||
global Rect GeoInvertedRect = { 0, 0, -1, -1 };
|
global Rect GeoInvertedRect = { {0, 0}, {-1, -1} };
|
||||||
global Point GeoOrigin = { 0, 0 };
|
global Point GeoOrigin = { 0, 0 };
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -365,40 +365,40 @@ GeoNameToPos(name, manhattan, verbose)
|
||||||
}
|
}
|
||||||
positions[] =
|
positions[] =
|
||||||
{
|
{
|
||||||
"bl", GEO_SOUTHWEST, FALSE,
|
{"bl", GEO_SOUTHWEST, FALSE},
|
||||||
"bottom", GEO_SOUTH, TRUE,
|
{"bottom", GEO_SOUTH, TRUE},
|
||||||
"br", GEO_SOUTHEAST, FALSE,
|
{"br", GEO_SOUTHEAST, FALSE},
|
||||||
"center", GEO_CENTER, FALSE,
|
{"center", GEO_CENTER, FALSE},
|
||||||
"d", GEO_SOUTH, TRUE,
|
{"d", GEO_SOUTH, TRUE},
|
||||||
"dl", GEO_SOUTHWEST, FALSE,
|
{"dl", GEO_SOUTHWEST, FALSE},
|
||||||
"down", GEO_SOUTH, TRUE,
|
{"down", GEO_SOUTH, TRUE},
|
||||||
"dr", GEO_SOUTHEAST, FALSE,
|
{"dr", GEO_SOUTHEAST, FALSE},
|
||||||
"e", GEO_EAST, TRUE,
|
{"e", GEO_EAST, TRUE},
|
||||||
"east", GEO_EAST, TRUE,
|
{"east", GEO_EAST, TRUE},
|
||||||
"left", GEO_WEST, TRUE,
|
{"left", GEO_WEST, TRUE},
|
||||||
"n", GEO_NORTH, TRUE,
|
{"n", GEO_NORTH, TRUE},
|
||||||
"ne", GEO_NORTHEAST, FALSE,
|
{"ne", GEO_NORTHEAST, FALSE},
|
||||||
"north", GEO_NORTH, TRUE,
|
{"north", GEO_NORTH, TRUE},
|
||||||
"northeast", GEO_NORTHEAST, FALSE,
|
{"northeast", GEO_NORTHEAST, FALSE},
|
||||||
"northwest", GEO_NORTHWEST, FALSE,
|
{"northwest", GEO_NORTHWEST, FALSE},
|
||||||
"nw", GEO_NORTHWEST, FALSE,
|
{"nw", GEO_NORTHWEST, FALSE},
|
||||||
"right", GEO_EAST, TRUE,
|
{"right", GEO_EAST, TRUE},
|
||||||
"s", GEO_SOUTH, TRUE,
|
{"s", GEO_SOUTH, TRUE},
|
||||||
"se", GEO_SOUTHEAST, FALSE,
|
{"se", GEO_SOUTHEAST, FALSE},
|
||||||
"south", GEO_SOUTH, TRUE,
|
{"south", GEO_SOUTH, TRUE},
|
||||||
"southeast", GEO_SOUTHEAST, FALSE,
|
{"southeast", GEO_SOUTHEAST, FALSE},
|
||||||
"southwest", GEO_SOUTHWEST, FALSE,
|
{"southwest", GEO_SOUTHWEST, FALSE},
|
||||||
"sw", GEO_SOUTHWEST, FALSE,
|
{"sw", GEO_SOUTHWEST, FALSE},
|
||||||
"tl", GEO_NORTHWEST, FALSE,
|
{"tl", GEO_NORTHWEST, FALSE},
|
||||||
"top", GEO_NORTH, TRUE,
|
{"top", GEO_NORTH, TRUE},
|
||||||
"tr", GEO_NORTHEAST, FALSE,
|
{"tr", GEO_NORTHEAST, FALSE},
|
||||||
"u", GEO_NORTH, TRUE,
|
{"u", GEO_NORTH, TRUE},
|
||||||
"ul", GEO_NORTHWEST, FALSE,
|
{"ul", GEO_NORTHWEST, FALSE},
|
||||||
"up", GEO_NORTH, TRUE,
|
{"up", GEO_NORTH, TRUE},
|
||||||
"ur", GEO_NORTHEAST, FALSE,
|
{"ur", GEO_NORTHEAST, FALSE},
|
||||||
"w", GEO_WEST, TRUE,
|
{"w", GEO_WEST, TRUE},
|
||||||
"west", GEO_WEST, TRUE,
|
{"west", GEO_WEST, TRUE},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
struct pos *pp;
|
struct pos *pp;
|
||||||
char *fmt;
|
char *fmt;
|
||||||
|
|
|
||||||
18
utils/set.c
18
utils/set.c
|
|
@ -109,15 +109,15 @@ SetNoisyBool(parm,valueS,file)
|
||||||
char *bS_name; /* name */
|
char *bS_name; /* name */
|
||||||
bool bS_value; /* procedure processing this parameter */
|
bool bS_value; /* procedure processing this parameter */
|
||||||
} boolStrings[] = {
|
} boolStrings[] = {
|
||||||
"yes", TRUE,
|
{"yes", TRUE},
|
||||||
"no", FALSE,
|
{"no", FALSE},
|
||||||
"true", TRUE,
|
{"true", TRUE},
|
||||||
"false", FALSE,
|
{"false", FALSE},
|
||||||
"1", TRUE,
|
{"1", TRUE},
|
||||||
"0", FALSE,
|
{"0", FALSE},
|
||||||
"on", TRUE,
|
{"on", TRUE},
|
||||||
"off", FALSE,
|
{"off", FALSE},
|
||||||
0
|
{0}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* If value not null, set parm */
|
/* If value not null, set parm */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue