1 /* ************************************************************************** */ 2 /* ************************************************************************** */ 3 /* ATTENTION: THIS IS AN AUTO-GENERATED FILE. DO NOT CHANGE IT! */ 4 /* ************************************************************************** */ 5 /* ************************************************************************** */ 6 /* Copyright 2012 - 2013, Cadence Design Systems */ 7 /* */ 8 /* This file is part of the Cadence LEF/DEF Open Source */ 9 /* Distribution, Product Version 5.8. */ 10 /* */ 11 /* Licensed under the Apache License, Version 2.0 (the "License"); */ 12 /* you may not use this file except in compliance with the License. */ 13 /* You may obtain a copy of the License at */ 14 /* */ 15 /* http://www.apache.org/licenses/LICENSE-2.0 */ 16 /* */ 17 /* Unless required by applicable law or agreed to in writing, software */ 18 /* distributed under the License is distributed on an "AS IS" BASIS, */ 19 /* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */ 20 /* implied. See the License for the specific language governing */ 21 /* permissions and limitations under the License. */ 22 /* */ 23 /* For updates, support, or to become part of the LEF/DEF Community, */ 24 /* check www.openeda.org for details. */ 25 /* */ 26 /* $Author: dell $ */ 27 /* $Revision: #1 $ */ 28 /* $Date: 2017/06/06 $ */ 29 /* $State: $ */ 30 /* ************************************************************************** */ 31 /* ************************************************************************** */ 32 33 34 #ifndef CLEFIVIA_H 35 #define CLEFIVIA_H 36 37 #include <stdio.h> 38 #include "lefiTypedefs.h" 39 40 EXTERN struct lefiGeomPolygon* lefiViaLayer_getPolygon (const lefiViaLayer* obj, int index); 41 42 /* setName calls clear to init */ 43 /* deflt=0 no default specified */ 44 /* deflt=1 default specified in lef file */ 45 46 /* orient=-1 means no orient was specified. */ 47 48 /* make a new one */ 49 50 EXTERN int lefiVia_hasDefault (const lefiVia* obj); 51 EXTERN int lefiVia_hasGenerated (const lefiVia* obj); 52 EXTERN int lefiVia_hasForeign (const lefiVia* obj); 53 EXTERN int lefiVia_hasForeignPnt (const lefiVia* obj); 54 EXTERN int lefiVia_hasForeignOrient (const lefiVia* obj); 55 EXTERN int lefiVia_hasProperties (const lefiVia* obj); 56 EXTERN int lefiVia_hasResistance (const lefiVia* obj); 57 EXTERN int lefiVia_hasTopOfStack (const lefiVia* obj); 58 59 EXTERN int lefiVia_numLayers (const lefiVia* obj); 60 EXTERN char* lefiVia_layerName (const lefiVia* obj, int layerNum); 61 EXTERN int lefiVia_numRects (const lefiVia* obj, int layerNum); 62 EXTERN double lefiVia_xl (const lefiVia* obj, int layerNum, int rectNum); 63 EXTERN double lefiVia_yl (const lefiVia* obj, int layerNum, int rectNum); 64 EXTERN double lefiVia_xh (const lefiVia* obj, int layerNum, int rectNum); 65 EXTERN double lefiVia_yh (const lefiVia* obj, int layerNum, int rectNum); 66 EXTERN int lefiVia_rectColorMask (const lefiVia* obj, int layerNum, int rectNum); 67 EXTERN int lefiVia_polyColorMask (const lefiVia* obj, int layerNum, int polyNum); 68 EXTERN int lefiVia_numPolygons (const lefiVia* obj, int layerNum); 69 EXTERN struct lefiGeomPolygon lefiVia_getPolygon (const lefiVia* obj, int layerNum, int polyNum); 70 71 EXTERN char* lefiVia_name (const lefiVia* obj); 72 EXTERN double lefiVia_resistance (const lefiVia* obj); 73 74 /* Given an index from 0 to numProperties()-1 return */ 75 /* information about that property. */ 76 EXTERN int lefiVia_numProperties (const lefiVia* obj); 77 EXTERN char* lefiVia_propName (const lefiVia* obj, int index); 78 EXTERN char* lefiVia_propValue (const lefiVia* obj, int index); 79 EXTERN double lefiVia_propNumber (const lefiVia* obj, int index); 80 EXTERN char lefiVia_propType (const lefiVia* obj, int index); 81 EXTERN int lefiVia_propIsNumber (const lefiVia* obj, int index); 82 EXTERN int lefiVia_propIsString (const lefiVia* obj, int index); 83 EXTERN char* lefiVia_foreign (const lefiVia* obj); 84 EXTERN double lefiVia_foreignX (const lefiVia* obj); 85 EXTERN double lefiVia_foreignY (const lefiVia* obj); 86 EXTERN int lefiVia_foreignOrient (const lefiVia* obj); 87 EXTERN char* lefiVia_foreignOrientStr (const lefiVia* obj); 88 89 /* 5.6 VIARULE inside a VIA */ 90 EXTERN int lefiVia_hasViaRule (const lefiVia* obj); 91 EXTERN const char* lefiVia_viaRuleName (const lefiVia* obj); 92 EXTERN double lefiVia_xCutSize (const lefiVia* obj); 93 EXTERN double lefiVia_yCutSize (const lefiVia* obj); 94 EXTERN const char* lefiVia_botMetalLayer (const lefiVia* obj); 95 EXTERN const char* lefiVia_cutLayer (const lefiVia* obj); 96 EXTERN const char* lefiVia_topMetalLayer (const lefiVia* obj); 97 EXTERN double lefiVia_xCutSpacing (const lefiVia* obj); 98 EXTERN double lefiVia_yCutSpacing (const lefiVia* obj); 99 EXTERN double lefiVia_xBotEnc (const lefiVia* obj); 100 EXTERN double lefiVia_yBotEnc (const lefiVia* obj); 101 EXTERN double lefiVia_xTopEnc (const lefiVia* obj); 102 EXTERN double lefiVia_yTopEnc (const lefiVia* obj); 103 EXTERN int lefiVia_hasRowCol (const lefiVia* obj); 104 EXTERN int lefiVia_numCutRows (const lefiVia* obj); 105 EXTERN int lefiVia_numCutCols (const lefiVia* obj); 106 EXTERN int lefiVia_hasOrigin (const lefiVia* obj); 107 EXTERN double lefiVia_xOffset (const lefiVia* obj); 108 EXTERN double lefiVia_yOffset (const lefiVia* obj); 109 EXTERN int lefiVia_hasOffset (const lefiVia* obj); 110 EXTERN double lefiVia_xBotOffset (const lefiVia* obj); 111 EXTERN double lefiVia_yBotOffset (const lefiVia* obj); 112 EXTERN double lefiVia_xTopOffset (const lefiVia* obj); 113 EXTERN double lefiVia_yTopOffset (const lefiVia* obj); 114 EXTERN int lefiVia_hasCutPattern (const lefiVia* obj); 115 EXTERN const char* lefiVia_cutPattern (const lefiVia* obj); 116 117 /* Debug print */ 118 EXTERN void lefiVia_print (const lefiVia* obj, FILE* f); 119 120 /* The prop value is stored in the propValue_ or the propDValue_. */ 121 /* If it is a string it is in propValue_. If it is a number, */ 122 /* then propValue_ is NULL and it is stored in propDValue_; */ 123 124 #endif 125