blob: 5e52bfc3c048f5c960e8bd82ea32991525a52043 [file] [log] [blame]
/* ************************************************************************** */
/* ************************************************************************** */
/* ATTENTION: THIS IS AN AUTO-GENERATED FILE. DO NOT CHANGE IT! */
/* ************************************************************************** */
/* ************************************************************************** */
/* Copyright 2013, Cadence Design Systems */
/* */
/* This file is part of the Cadence LEF/DEF Open Source */
/* Distribution, Product Version 5.8. */
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); */
/* you may not use this file except in compliance with the License. */
/* You may obtain a copy of the License at */
/* */
/* http://www.apache.org/licenses/LICENSE-2.0 */
/* */
/* Unless required by applicable law or agreed to in writing, software */
/* distributed under the License is distributed on an "AS IS" BASIS, */
/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
/* implied. See the License for the specific language governing */
/* permissions and limitations under the License. */
/* */
/* For updates, support, or to become part of the LEF/DEF Community, */
/* check www.openeda.org for details. */
/* */
/* $Author: dell $ */
/* $Revision: #1 $ */
/* $Date: 2017/06/06 $ */
/* $State: $ */
/* ************************************************************************** */
/* ************************************************************************** */
#ifndef CDEFINET_H
#define CDEFINET_H
#include <stdio.h>
#include "defiTypedefs.h"
/* Return codes for defiNet::viaOrient
DEF_ORIENT_N 0
DEF_ORIENT_W 1
DEF_ORIENT_S 2
DEF_ORIENT_E 3
DEF_ORIENT_FN 4
DEF_ORIENT_FW 5
DEF_ORIENT_FS 6
DEF_ORIENT_FE 7
*/
EXTERN const char* defiWire_wireType (const defiWire* obj);
EXTERN const char* defiWire_wireShieldNetName (const defiWire* obj);
EXTERN int defiWire_numPaths (const defiWire* obj);
EXTERN const defiPath* defiWire_path (const defiWire* obj, int index);
/* WMD -- the following will be removed by the next release */
/* NEW: a net can have more than 1 wire */
/* Debug printing */
EXTERN void defiSubnet_print (const defiSubnet* obj, FILE* f);
EXTERN const char* defiSubnet_name (const defiSubnet* obj);
EXTERN int defiSubnet_numConnections (const defiSubnet* obj);
EXTERN const char* defiSubnet_instance (const defiSubnet* obj, int index);
EXTERN const char* defiSubnet_pin (const defiSubnet* obj, int index);
EXTERN int defiSubnet_pinIsSynthesized (const defiSubnet* obj, int index);
EXTERN int defiSubnet_pinIsMustJoin (const defiSubnet* obj, int index);
/* WMD -- the following will be removed by the next release */
EXTERN int defiSubnet_isFixed (const defiSubnet* obj);
EXTERN int defiSubnet_isRouted (const defiSubnet* obj);
EXTERN int defiSubnet_isCover (const defiSubnet* obj);
EXTERN int defiSubnet_hasNonDefaultRule (const defiSubnet* obj);
/* WMD -- the following will be removed by the next release */
EXTERN int defiSubnet_numPaths (const defiSubnet* obj);
EXTERN const defiPath* defiSubnet_path (const defiSubnet* obj, int index);
EXTERN const char* defiSubnet_nonDefaultRule (const defiSubnet* obj);
EXTERN int defiSubnet_numWires (const defiSubnet* obj);
EXTERN const defiWire* defiSubnet_wire (const defiSubnet* obj, int index);
/* WMD -- the following will be removed by the next release */
EXTERN int defiVpin_xl (const defiVpin* obj);
EXTERN int defiVpin_yl (const defiVpin* obj);
EXTERN int defiVpin_xh (const defiVpin* obj);
EXTERN int defiVpin_yh (const defiVpin* obj);
EXTERN char defiVpin_status (const defiVpin* obj);
EXTERN int defiVpin_orient (const defiVpin* obj);
EXTERN const char* defiVpin_orientStr (const defiVpin* obj);
EXTERN int defiVpin_xLoc (const defiVpin* obj);
EXTERN int defiVpin_yLoc (const defiVpin* obj);
EXTERN const char* defiVpin_name (const defiVpin* obj);
EXTERN const char* defiVpin_layer (const defiVpin* obj);
/* Pre 5.4 */
EXTERN const char* defiShield_shieldName (const defiShield* obj);
EXTERN int defiShield_numPaths (const defiShield* obj);
EXTERN const defiPath* defiShield_path (const defiShield* obj, int index);
/* Struct holds the data for one component. */
/* Routines used by YACC to set the fields in the net. */
/* WMD -- the following will be removed by the next release */
/* NEW: a net can have more than 1 wire */
/* 5.6 */
/* For OA to modify the netName, id & pinName */
/* Routines to return the value of net data. */
EXTERN const char* defiNet_name (const defiNet* obj);
EXTERN int defiNet_weight (const defiNet* obj);
EXTERN int defiNet_numProps (const defiNet* obj);
EXTERN const char* defiNet_propName (const defiNet* obj, int index);
EXTERN const char* defiNet_propValue (const defiNet* obj, int index);
EXTERN double defiNet_propNumber (const defiNet* obj, int index);
EXTERN const char defiNet_propType (const defiNet* obj, int index);
EXTERN int defiNet_propIsNumber (const defiNet* obj, int index);
EXTERN int defiNet_propIsString (const defiNet* obj, int index);
EXTERN int defiNet_numConnections (const defiNet* obj);
EXTERN const char* defiNet_instance (const defiNet* obj, int index);
EXTERN const char* defiNet_pin (const defiNet* obj, int index);
EXTERN int defiNet_pinIsMustJoin (const defiNet* obj, int index);
EXTERN int defiNet_pinIsSynthesized (const defiNet* obj, int index);
EXTERN int defiNet_numSubnets (const defiNet* obj);
EXTERN const defiSubnet* defiNet_subnet (const defiNet* obj, int index);
/* WMD -- the following will be removed by the next release */
EXTERN int defiNet_isFixed (const defiNet* obj);
EXTERN int defiNet_isRouted (const defiNet* obj);
EXTERN int defiNet_isCover (const defiNet* obj);
/* The following routines are for wiring */
EXTERN int defiNet_numWires (const defiNet* obj);
EXTERN const defiWire* defiNet_wire (const defiNet* obj, int index);
/* Routines to get the information about Virtual Pins. */
EXTERN int defiNet_numVpins (const defiNet* obj);
EXTERN const defiVpin* defiNet_vpin (const defiNet* obj, int index);
EXTERN int defiNet_hasProps (const defiNet* obj);
EXTERN int defiNet_hasWeight (const defiNet* obj);
EXTERN int defiNet_hasSubnets (const defiNet* obj);
EXTERN int defiNet_hasSource (const defiNet* obj);
EXTERN int defiNet_hasFixedbump (const defiNet* obj);
EXTERN int defiNet_hasFrequency (const defiNet* obj);
EXTERN int defiNet_hasPattern (const defiNet* obj);
EXTERN int defiNet_hasOriginal (const defiNet* obj);
EXTERN int defiNet_hasCap (const defiNet* obj);
EXTERN int defiNet_hasUse (const defiNet* obj);
EXTERN int defiNet_hasStyle (const defiNet* obj);
EXTERN int defiNet_hasNonDefaultRule (const defiNet* obj);
EXTERN int defiNet_hasVoltage (const defiNet* obj);
EXTERN int defiNet_hasSpacingRules (const defiNet* obj);
EXTERN int defiNet_hasWidthRules (const defiNet* obj);
EXTERN int defiNet_hasXTalk (const defiNet* obj);
EXTERN int defiNet_numSpacingRules (const defiNet* obj);
EXTERN void defiNet_spacingRule (const defiNet* obj, int index, char** layer, double* dist, double* left, double* right);
EXTERN int defiNet_numWidthRules (const defiNet* obj);
EXTERN void defiNet_widthRule (const defiNet* obj, int index, char** layer, double* dist);
EXTERN double defiNet_voltage (const defiNet* obj);
EXTERN int defiNet_XTalk (const defiNet* obj);
EXTERN const char* defiNet_source (const defiNet* obj);
EXTERN double defiNet_frequency (const defiNet* obj);
EXTERN const char* defiNet_original (const defiNet* obj);
EXTERN const char* defiNet_pattern (const defiNet* obj);
EXTERN double defiNet_cap (const defiNet* obj);
EXTERN const char* defiNet_use (const defiNet* obj);
EXTERN int defiNet_style (const defiNet* obj);
EXTERN const char* defiNet_nonDefaultRule (const defiNet* obj);
/* WMD -- the following will be removed by the next release */
EXTERN int defiNet_numPaths (const defiNet* obj);
EXTERN const defiPath* defiNet_path (const defiNet* obj, int index);
EXTERN int defiNet_numShields (const defiNet* obj);
EXTERN const defiShield* defiNet_shield (const defiNet* obj, int index);
EXTERN int defiNet_numShieldNets (const defiNet* obj);
EXTERN const char* defiNet_shieldNet (const defiNet* obj, int index);
EXTERN int defiNet_numNoShields (const defiNet* obj);
EXTERN const defiShield* defiNet_noShield (const defiNet* obj, int index);
/* 5.6 */
EXTERN int defiNet_numPolygons (const defiNet* obj);
EXTERN const char* defiNet_polygonName (const defiNet* obj, int index);
EXTERN struct defiPoints defiNet_getPolygon (const defiNet* obj, int index);
EXTERN int defiNet_polyMask (const defiNet* obj, int index);
EXTERN const char* defiNet_polyRouteStatus (const defiNet* obj, int index);
EXTERN const char* defiNet_polyRouteStatusShieldName (const defiNet* obj, int index);
EXTERN const char* defiNet_polyShapeType (const defiNet* obj, int index);
EXTERN int defiNet_numRectangles (const defiNet* obj);
EXTERN const char* defiNet_rectName (const defiNet* obj, int index);
EXTERN int defiNet_xl (const defiNet* obj, int index);
EXTERN int defiNet_yl (const defiNet* obj, int index);
EXTERN int defiNet_xh (const defiNet* obj, int index);
EXTERN int defiNet_yh (const defiNet* obj, int index);
EXTERN int defiNet_rectMask (const defiNet* obj, int index);
EXTERN const char* defiNet_rectRouteStatus (const defiNet* obj, int index);
EXTERN const char* defiNet_rectRouteStatusShieldName (const defiNet* obj, int index);
EXTERN const char* defiNet_rectShapeType (const defiNet* obj, int index);
/* 5.8 */
EXTERN int defiNet_numViaSpecs (const defiNet* obj);
EXTERN struct defiPoints defiNet_getViaPts (const defiNet* obj, int index);
EXTERN const char* defiNet_viaName (const defiNet* obj, int index);
EXTERN const int defiNet_viaOrient (const defiNet* obj, int index);
EXTERN const char* defiNet_viaOrientStr (const defiNet* obj, int index);
EXTERN const int defiNet_topMaskNum (const defiNet* obj, int index);
EXTERN const int defiNet_cutMaskNum (const defiNet* obj, int index);
EXTERN const int defiNet_bottomMaskNum (const defiNet* obj, int index);
EXTERN const char* defiNet_viaRouteStatus (const defiNet* obj, int index);
EXTERN const char* defiNet_viaRouteStatusShieldName (const defiNet* obj, int index);
EXTERN const char* defiNet_viaShapeType (const defiNet* obj, int index);
/* Debug printing */
EXTERN void defiNet_print (const defiNet* obj, FILE* f);
/* The method freeWire() is added is user select to have a callback */
/* per wire within a net This is an internal method and is not public */
/* Clear the rectangles & polygons data if partial path callback is set */
/* WMD -- the following will be removed by the nex release */
/* WMD -- the following will be removed by the nex release */
#endif