blob: de48194db955922af6b27915a5adb59c1c3aeaca [file] [log] [blame]
/* ************************************************************************** */
/* ************************************************************************** */
/* ATTENTION: THIS IS AN AUTO-GENERATED FILE. DO NOT CHANGE IT! */
/* ************************************************************************** */
/* ************************************************************************** */
/* Copyright 2013-2014, 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 CDEFRREADER_H
#define CDEFRREADER_H
#include <stdio.h>
#include "defiTypedefs.h"
#define DEF_MSGS 4013
#define CBMAX 150
/* An enum describing all of the types of reader callbacks. */
typedef enum {
defrUnspecifiedCbkType = 0,
defrDesignStartCbkType = 1,
defrTechNameCbkType = 2,
defrPropCbkType = 3,
defrPropDefEndCbkType = 4,
defrPropDefStartCbkType = 5,
defrFloorPlanNameCbkType = 6,
defrArrayNameCbkType = 7,
defrUnitsCbkType = 8,
defrDividerCbkType = 9,
defrBusBitCbkType = 10,
defrSiteCbkType = 11,
defrComponentStartCbkType = 12,
defrComponentCbkType = 13,
defrComponentEndCbkType = 14,
defrNetStartCbkType = 15,
defrNetCbkType = 16,
defrNetNameCbkType = 17,
defrNetNonDefaultRuleCbkType = 18,
defrNetSubnetNameCbkType = 19,
defrNetEndCbkType = 20,
defrPathCbkType = 21,
defrVersionCbkType = 22,
defrVersionStrCbkType = 23,
defrComponentExtCbkType = 24,
defrPinExtCbkType = 25,
defrViaExtCbkType = 26,
defrNetConnectionExtCbkType = 27,
defrNetExtCbkType = 28,
defrGroupExtCbkType = 29,
defrScanChainExtCbkType = 30,
defrIoTimingsExtCbkType = 31,
defrPartitionsExtCbkType = 32,
defrHistoryCbkType = 33,
defrDieAreaCbkType = 34,
defrCanplaceCbkType = 35,
defrCannotOccupyCbkType = 36,
defrPinCapCbkType = 37,
defrDefaultCapCbkType = 38,
defrStartPinsCbkType = 39,
defrPinCbkType = 40,
defrPinEndCbkType = 41,
defrRowCbkType = 42,
defrTrackCbkType = 43,
defrGcellGridCbkType = 44,
defrViaStartCbkType = 45,
defrViaCbkType = 46,
defrViaEndCbkType = 47,
defrRegionStartCbkType = 48,
defrRegionCbkType = 49,
defrRegionEndCbkType = 50,
defrSNetStartCbkType = 51,
defrSNetCbkType = 52,
defrSNetPartialPathCbkType = 53,
defrSNetWireCbkType = 54,
defrSNetEndCbkType = 55,
defrGroupsStartCbkType = 56,
defrGroupNameCbkType = 57,
defrGroupMemberCbkType = 58,
defrGroupCbkType = 59,
defrGroupsEndCbkType = 60,
defrAssertionsStartCbkType = 61,
defrAssertionCbkType = 62,
defrAssertionsEndCbkType = 63,
defrConstraintsStartCbkType = 64,
defrConstraintCbkType = 65,
defrConstraintsEndCbkType = 66,
defrScanchainsStartCbkType = 67,
defrScanchainCbkType = 68,
defrScanchainsEndCbkType = 69,
defrIOTimingsStartCbkType = 70,
defrIOTimingCbkType = 71,
defrIOTimingsEndCbkType = 72,
defrFPCStartCbkType = 73,
defrFPCCbkType = 74,
defrFPCEndCbkType = 75,
defrTimingDisablesStartCbkType = 76,
defrTimingDisableCbkType = 77,
defrTimingDisablesEndCbkType = 78,
defrPartitionsStartCbkType = 79,
defrPartitionCbkType = 80,
defrPartitionsEndCbkType = 81,
defrPinPropStartCbkType = 82,
defrPinPropCbkType = 83,
defrPinPropEndCbkType = 84,
defrBlockageStartCbkType = 85,
defrBlockageCbkType = 86,
defrBlockageEndCbkType = 87,
defrSlotStartCbkType = 88,
defrSlotCbkType = 89,
defrSlotEndCbkType = 90,
defrFillStartCbkType = 91,
defrFillCbkType = 92,
defrFillEndCbkType = 93,
defrCaseSensitiveCbkType = 94,
defrNonDefaultStartCbkType = 95,
defrNonDefaultCbkType = 96,
defrNonDefaultEndCbkType = 97,
defrStylesStartCbkType = 98,
defrStylesCbkType = 99,
defrStylesEndCbkType = 100,
defrExtensionCbkType = 101,
/* NEW CALLBACK - If you are creating a new callback, you must add */
/* a unique item to this enum for each callback routine. When the */
/* callback is called in def.y you have to supply this enum item */
/* as an argument in the call. */
defrComponentMaskShiftLayerCbkType = 102,
defrDesignEndCbkType = 103
} defrCallbackType_e;
/* Declarations of function signatures for each type of callback. */
/* These declarations are type-safe when compiling with ANSI C */
/* or C++; you will only be able to register a function pointer */
/* with the correct signature for a given type of callback. */
/* */
/* Each callback function is expected to return 0 if successful. */
/* A non-zero return code will cause the reader to abort. */
/* */
/* The defrDesignStart and defrDesignEnd callback is only called once. */
/* Other callbacks may be called multiple times, each time with a different */
/* set of data. */
/* */
/* For each callback, the Def API will make the callback to the */
/* function supplied by the client, which should either make a copy */
/* of the Def object, or store the data in the client's own data structures. */
/* The Def API will delete or reuse each object after making the callback, */
/* so the client should not keep a pointer to it. */
/* */
/* All callbacks pass the user data pointer provided in defrRead() */
/* or defrSetUserData() back to the client; this can be used by the */
/* client to obtain access to the rest of the client's data structures. */
/* */
/* The user data pointer is obtained using defrGetUserData() immediately */
/* prior to making each callback, so the client is free to change the */
/* user data on the fly if necessary. */
/* */
/* Callbacks with the same signature are passed a callback type */
/* parameter, which allows an application to write a single callback */
/* function, register that function for multiple callbacks, then */
/* switch based on the callback type to handle the appropriate type of */
/* data. */
/* A declaration of the signature of all callbacks that return nothing. */
typedef int (*defrVoidCbkFnType) (defrCallbackType_e, void* v, defiUserData);
/* A declaration of the signature of all callbacks that return a string. */
typedef int (*defrStringCbkFnType) (defrCallbackType_e, const char *string, defiUserData);
/* A declaration of the signature of all callbacks that return a integer. */
typedef int (*defrIntegerCbkFnType) (defrCallbackType_e, int number, defiUserData);
/* A declaration of the signature of all callbacks that return a double. */
typedef int (*defrDoubleCbkFnType) (defrCallbackType_e, double number, defiUserData);
/* A declaration of the signature of all callbacks that return a defiProp. */
typedef int (*defrPropCbkFnType) (defrCallbackType_e, defiProp *prop, defiUserData);
/* A declaration of the signature of all callbacks that return a defiSite. */
typedef int (*defrSiteCbkFnType) (defrCallbackType_e, defiSite *site, defiUserData);
/* A declaration of the signature of all callbacks that return a defComponent */
typedef int (*defrComponentCbkFnType) (defrCallbackType_e, defiComponent *comp, defiUserData);
/* A declaration of the signature of all callbacks that return a defComponent */
typedef int (*defrComponentMaskShiftLayerCbkFnType) (defrCallbackType_e, defiComponentMaskShiftLayer *comp, defiUserData);
/* A declaration of the signature of all callbacks that return a defNet. */
typedef int (*defrNetCbkFnType) (defrCallbackType_e, defiNet *net, defiUserData);
/* A declaration of the signature of all callbacks that return a defPath. */
typedef int (*defrPathCbkFnType) (defrCallbackType_e, defiPath *path, defiUserData);
/* A declaration of the signature of all callbacks that return a defiBox. */
typedef int (*defrBoxCbkFnType) (defrCallbackType_e, defiBox *box, defiUserData);
/* A declaration of the signature of all callbacks that return a defiPinCap. */
typedef int (*defrPinCapCbkFnType) (defrCallbackType_e, defiPinCap *pincap, defiUserData);
/* A declaration of the signature of all callbacks that return a defiPin. */
typedef int (*defrPinCbkFnType) (defrCallbackType_e, defiPin *pin, defiUserData);
/* A declaration of the signature of all callbacks that return a defiRow. */
typedef int (*defrRowCbkFnType) (defrCallbackType_e, defiRow *row, defiUserData);
/* A declaration of the signature of all callbacks that return a defiTrack. */
typedef int (*defrTrackCbkFnType) (defrCallbackType_e, defiTrack *track, defiUserData);
/* A declaration of the signature of all callbacks that return a defiGcellGri */
typedef int (*defrGcellGridCbkFnType) (defrCallbackType_e, defiGcellGrid *grid, defiUserData);
/* A declaration of the signature of all callbacks that return a defiVia. */
typedef int (*defrViaCbkFnType) (defrCallbackType_e, defiVia *, defiUserData);
/* A declaration of the signature of all callbacks that return a defiRegion. */
typedef int (*defrRegionCbkFnType) (defrCallbackType_e, defiRegion *, defiUserData);
/* A declaration of the signature of all callbacks that return a defiGroup. */
typedef int (*defrGroupCbkFnType) (defrCallbackType_e, defiGroup *, defiUserData);
/* A declaration of the signature of all callbacks that return a defiAssertio */
typedef int (*defrAssertionCbkFnType) (defrCallbackType_e, defiAssertion *, defiUserData);
/* A declaration of the signature of all callbacks that return a defiScanChai */
typedef int (*defrScanchainCbkFnType) (defrCallbackType_e, defiScanchain *, defiUserData);
/* A declaration of the signature of all callbacks that return a defiIOTiming */
typedef int (*defrIOTimingCbkFnType) (defrCallbackType_e, defiIOTiming *, defiUserData);
/* A declaration of the signature of all callbacks that return a defiFPC. */
typedef int (*defrFPCCbkFnType) (defrCallbackType_e, defiFPC *, defiUserData);
/* A declaration of the signature of all callbacks that return a defiTimingDi */
typedef int (*defrTimingDisableCbkFnType) (defrCallbackType_e, defiTimingDisable *, defiUserData);
/* A declaration of the signature of all callbacks that return a defiPartitio */
typedef int (*defrPartitionCbkFnType) (defrCallbackType_e, defiPartition *, defiUserData);
/* A declaration of the signature of all callbacks that return a defiPinProp. */
typedef int (*defrPinPropCbkFnType) (defrCallbackType_e, defiPinProp *, defiUserData);
/* A declaration of the signature of all callbacks that return a defiBlockage */
typedef int (*defrBlockageCbkFnType) (defrCallbackType_e, defiBlockage *, defiUserData);
/* A declaration of the signature of all callbacks that return a defiSlot. */
typedef int (*defrSlotCbkFnType) (defrCallbackType_e, defiSlot *, defiUserData);
/* A declaration of the signature of all callbacks that return a defiFill. */
typedef int (*defrFillCbkFnType) (defrCallbackType_e, defiFill *, defiUserData);
/* A declaration of the signature of all callbacks that return a defiNonDefau */
typedef int (*defrNonDefaultCbkFnType) (defrCallbackType_e, defiNonDefault *, defiUserData);
/* A declaration of the signature of all callbacks that return a defiStyles. */
typedef int (*defrStylesCbkFnType) (defrCallbackType_e, defiStyles *, defiUserData);
/* NEW CALLBACK - Each callback must return user data, enum, and */
/* OUR-DATA item. We must define a callback function type for */
/* each type of OUR-DATA. Some routines return a string, some */
/* return an integer, and some return a pointer to a class. */
/* If you create a new class, then you must create a new function */
/* type here to return that class to the user. */
/* The reader initialization. Must be called before defrRead(). */
EXTERN int defrInit ();
EXTERN int defrInitSession (int startSession);
/* obsoleted now. */
EXTERN int defrReset ();
/*Sets all parser memory into init state. */
EXTERN int defrClear ();
/* Change the comment character in the DEF file. The default */
/* is '#' */
EXTERN void defrSetCommentChar (char c);
/* Functions to call to set specific actions in the parser. */
EXTERN void defrSetAddPathToNet ();
EXTERN void defrSetAllowComponentNets ();
EXTERN int defrGetAllowComponentNets ();
EXTERN void defrSetCaseSensitivity (int caseSense);
/* Functions to keep track of callbacks that the user did not */
/* supply. Normally all parts of the DEF file that the user */
/* does not supply a callback for will be ignored. These */
/* routines tell the parser count the DEF constructs that are */
/* present in the input file, but did not trigger a callback. */
/* This should help you find any "important" DEF constructs that */
/* you are ignoring. */
EXTERN void defrSetRegisterUnusedCallbacks ();
EXTERN void defrPrintUnusedCallbacks (FILE* log);
/* Obsoleted now. */
EXTERN int defrReleaseNResetMemory ();
/* The main reader function. */
/* The file should already be opened. This requirement allows */
/* the reader to be used with stdin or a pipe. The file name */
/* is only used for error messages. */
EXTERN int defrRead (FILE * file, const char * fileName, defiUserData userData, int case_sensitive);
/* Set/get the client-provided user data. defi doesn't look at */
/* this data at all, it simply passes the opaque defiUserData pointer */
/* back to the application with each callback. The client can */
/* change the data at any time, and it will take effect on the */
/* next callback. The defi reader and writer maintain separate */
/* user data pointers. */
EXTERN void defrSetUserData (defiUserData p0);
EXTERN defiUserData defrGetUserData ();
/* Functions to call to register a callback function or get the function */
/*pointer after it has been registered. */
/* */
/* Register one function for all callbacks with the same signature */
EXTERN void defrSetArrayNameCbk (defrStringCbkFnType p0);
EXTERN void defrSetAssertionCbk (defrAssertionCbkFnType p0);
EXTERN void defrSetAssertionsStartCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetAssertionsEndCbk (defrVoidCbkFnType p0);
EXTERN void defrSetBlockageCbk (defrBlockageCbkFnType p0);
EXTERN void defrSetBlockageStartCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetBlockageEndCbk (defrVoidCbkFnType p0);
EXTERN void defrSetBusBitCbk (defrStringCbkFnType p0);
EXTERN void defrSetCannotOccupyCbk (defrSiteCbkFnType p0);
EXTERN void defrSetCanplaceCbk (defrSiteCbkFnType p0);
EXTERN void defrSetCaseSensitiveCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetComponentCbk (defrComponentCbkFnType p0);
EXTERN void defrSetComponentExtCbk (defrStringCbkFnType p0);
EXTERN void defrSetComponentStartCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetComponentEndCbk (defrVoidCbkFnType p0);
EXTERN void defrSetConstraintCbk (defrAssertionCbkFnType p0);
EXTERN void defrSetConstraintsStartCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetConstraintsEndCbk (defrVoidCbkFnType p0);
EXTERN void defrSetDefaultCapCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetDesignCbk (defrStringCbkFnType p0);
EXTERN void defrSetDesignEndCbk (defrVoidCbkFnType p0);
EXTERN void defrSetDieAreaCbk (defrBoxCbkFnType p0);
EXTERN void defrSetDividerCbk (defrStringCbkFnType p0);
EXTERN void defrSetExtensionCbk (defrStringCbkFnType p0);
EXTERN void defrSetFillCbk (defrFillCbkFnType p0);
EXTERN void defrSetFillStartCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetFillEndCbk (defrVoidCbkFnType p0);
EXTERN void defrSetFPCCbk (defrFPCCbkFnType p0);
EXTERN void defrSetFPCStartCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetFPCEndCbk (defrVoidCbkFnType p0);
EXTERN void defrSetFloorPlanNameCbk (defrStringCbkFnType p0);
EXTERN void defrSetGcellGridCbk (defrGcellGridCbkFnType p0);
EXTERN void defrSetGroupNameCbk (defrStringCbkFnType p0);
EXTERN void defrSetGroupMemberCbk (defrStringCbkFnType p0);
EXTERN void defrSetComponentMaskShiftLayerCbk (defrComponentMaskShiftLayerCbkFnType p0);
EXTERN void defrSetGroupCbk (defrGroupCbkFnType p0);
EXTERN void defrSetGroupExtCbk (defrStringCbkFnType p0);
EXTERN void defrSetGroupsStartCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetGroupsEndCbk (defrVoidCbkFnType p0);
EXTERN void defrSetHistoryCbk (defrStringCbkFnType p0);
EXTERN void defrSetIOTimingCbk (defrIOTimingCbkFnType p0);
EXTERN void defrSetIOTimingsStartCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetIOTimingsEndCbk (defrVoidCbkFnType p0);
EXTERN void defrSetIoTimingsExtCbk (defrStringCbkFnType p0);
EXTERN void defrSetNetCbk (defrNetCbkFnType p0);
EXTERN void defrSetNetNameCbk (defrStringCbkFnType p0);
EXTERN void defrSetNetNonDefaultRuleCbk (defrStringCbkFnType p0);
EXTERN void defrSetNetConnectionExtCbk (defrStringCbkFnType p0);
EXTERN void defrSetNetExtCbk (defrStringCbkFnType p0);
EXTERN void defrSetNetPartialPathCbk (defrNetCbkFnType p0);
EXTERN void defrSetNetSubnetNameCbk (defrStringCbkFnType p0);
EXTERN void defrSetNetStartCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetNetEndCbk (defrVoidCbkFnType p0);
EXTERN void defrSetNonDefaultCbk (defrNonDefaultCbkFnType p0);
EXTERN void defrSetNonDefaultStartCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetNonDefaultEndCbk (defrVoidCbkFnType p0);
EXTERN void defrSetPartitionCbk (defrPartitionCbkFnType p0);
EXTERN void defrSetPartitionsExtCbk (defrStringCbkFnType p0);
EXTERN void defrSetPartitionsStartCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetPartitionsEndCbk (defrVoidCbkFnType p0);
EXTERN void defrSetPathCbk (defrPathCbkFnType p0);
EXTERN void defrSetPinCapCbk (defrPinCapCbkFnType p0);
EXTERN void defrSetPinCbk (defrPinCbkFnType p0);
EXTERN void defrSetPinExtCbk (defrStringCbkFnType p0);
EXTERN void defrSetPinPropCbk (defrPinPropCbkFnType p0);
EXTERN void defrSetPinPropStartCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetPinPropEndCbk (defrVoidCbkFnType p0);
EXTERN void defrSetPropCbk (defrPropCbkFnType p0);
EXTERN void defrSetPropDefEndCbk (defrVoidCbkFnType p0);
EXTERN void defrSetPropDefStartCbk (defrVoidCbkFnType p0);
EXTERN void defrSetRegionCbk (defrRegionCbkFnType p0);
EXTERN void defrSetRegionStartCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetRegionEndCbk (defrVoidCbkFnType p0);
EXTERN void defrSetRowCbk (defrRowCbkFnType p0);
EXTERN void defrSetSNetCbk (defrNetCbkFnType p0);
EXTERN void defrSetSNetStartCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetSNetEndCbk (defrVoidCbkFnType p0);
EXTERN void defrSetSNetPartialPathCbk (defrNetCbkFnType p0);
EXTERN void defrSetSNetWireCbk (defrNetCbkFnType p0);
EXTERN void defrSetScanChainExtCbk (defrStringCbkFnType p0);
EXTERN void defrSetScanchainCbk (defrScanchainCbkFnType p0);
EXTERN void defrSetScanchainsStartCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetScanchainsEndCbk (defrVoidCbkFnType p0);
EXTERN void defrSetSiteCbk (defrSiteCbkFnType p0);
EXTERN void defrSetSlotCbk (defrSlotCbkFnType p0);
EXTERN void defrSetSlotStartCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetSlotEndCbk (defrVoidCbkFnType p0);
EXTERN void defrSetStartPinsCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetStylesCbk (defrStylesCbkFnType p0);
EXTERN void defrSetStylesStartCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetStylesEndCbk (defrVoidCbkFnType p0);
EXTERN void defrSetPinEndCbk (defrVoidCbkFnType p0);
EXTERN void defrSetTechnologyCbk (defrStringCbkFnType p0);
EXTERN void defrSetTimingDisableCbk (defrTimingDisableCbkFnType p0);
EXTERN void defrSetTimingDisablesStartCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetTimingDisablesEndCbk (defrVoidCbkFnType p0);
EXTERN void defrSetTrackCbk (defrTrackCbkFnType p0);
EXTERN void defrSetUnitsCbk (defrDoubleCbkFnType p0);
EXTERN void defrSetVersionCbk (defrDoubleCbkFnType p0);
EXTERN void defrSetVersionStrCbk (defrStringCbkFnType p0);
EXTERN void defrSetViaCbk (defrViaCbkFnType p0);
EXTERN void defrSetViaExtCbk (defrStringCbkFnType p0);
EXTERN void defrSetViaStartCbk (defrIntegerCbkFnType p0);
EXTERN void defrSetViaEndCbk (defrVoidCbkFnType p0);
/* NEW CALLBACK - For each new callback you create, you must */
/* create a routine that allows the user to set it. Add the */
/* setting routines here. */
/*Set all of the callbacks that have not yet been set to the following */
/*function. This is especially useful if you want to check to see */
/*if you forgot anything. */
EXTERN void defrUnsetCallbacks ();
/* Functions to call to unregister a callback function. */
EXTERN void defrUnsetArrayNameCbk ();
EXTERN void defrUnsetAssertionCbk ();
EXTERN void defrUnsetAssertionsStartCbk ();
EXTERN void defrUnsetAssertionsEndCbk ();
EXTERN void defrUnsetBlockageCbk ();
EXTERN void defrUnsetBlockageStartCbk ();
EXTERN void defrUnsetBlockageEndCbk ();
EXTERN void defrUnsetBusBitCbk ();
EXTERN void defrUnsetCannotOccupyCbk ();
EXTERN void defrUnsetCanplaceCbk ();
EXTERN void defrUnsetCaseSensitiveCbk ();
EXTERN void defrUnsetComponentCbk ();
EXTERN void defrUnsetComponentExtCbk ();
EXTERN void defrUnsetComponentStartCbk ();
EXTERN void defrUnsetComponentEndCbk ();
EXTERN void defrUnsetConstraintCbk ();
EXTERN void defrUnsetConstraintsStartCbk ();
EXTERN void defrUnsetConstraintsEndCbk ();
EXTERN void defrUnsetDefaultCapCbk ();
EXTERN void defrUnsetDesignCbk ();
EXTERN void defrUnsetDesignEndCbk ();
EXTERN void defrUnsetDieAreaCbk ();
EXTERN void defrUnsetDividerCbk ();
EXTERN void defrUnsetExtensionCbk ();
EXTERN void defrUnsetFillCbk ();
EXTERN void defrUnsetFillStartCbk ();
EXTERN void defrUnsetFillEndCbk ();
EXTERN void defrUnsetFPCCbk ();
EXTERN void defrUnsetFPCStartCbk ();
EXTERN void defrUnsetFPCEndCbk ();
EXTERN void defrUnsetFloorPlanNameCbk ();
EXTERN void defrUnsetGcellGridCbk ();
EXTERN void defrUnsetGroupCbk ();
EXTERN void defrUnsetGroupExtCbk ();
EXTERN void defrUnsetGroupMemberCbk ();
EXTERN void defrUnsetComponentMaskShiftLayerCbk ();
EXTERN void defrUnsetGroupNameCbk ();
EXTERN void defrUnsetGroupsStartCbk ();
EXTERN void defrUnsetGroupsEndCbk ();
EXTERN void defrUnsetHistoryCbk ();
EXTERN void defrUnsetIOTimingCbk ();
EXTERN void defrUnsetIOTimingsStartCbk ();
EXTERN void defrUnsetIOTimingsEndCbk ();
EXTERN void defrUnsetIOTimingsExtCbk ();
EXTERN void defrUnsetNetCbk ();
EXTERN void defrUnsetNetNameCbk ();
EXTERN void defrUnsetNetNonDefaultRuleCbk ();
EXTERN void defrUnsetNetConnectionExtCbk ();
EXTERN void defrUnsetNetExtCbk ();
EXTERN void defrUnsetNetPartialPathCbk ();
EXTERN void defrUnsetNetSubnetNameCbk ();
EXTERN void defrUnsetNetStartCbk ();
EXTERN void defrUnsetNetEndCbk ();
EXTERN void defrUnsetNonDefaultCbk ();
EXTERN void defrUnsetNonDefaultStartCbk ();
EXTERN void defrUnsetNonDefaultEndCbk ();
EXTERN void defrUnsetPartitionCbk ();
EXTERN void defrUnsetPartitionsExtCbk ();
EXTERN void defrUnsetPartitionsStartCbk ();
EXTERN void defrUnsetPartitionsEndCbk ();
EXTERN void defrUnsetPathCbk ();
EXTERN void defrUnsetPinCapCbk ();
EXTERN void defrUnsetPinCbk ();
EXTERN void defrUnsetPinEndCbk ();
EXTERN void defrUnsetPinExtCbk ();
EXTERN void defrUnsetPinPropCbk ();
EXTERN void defrUnsetPinPropStartCbk ();
EXTERN void defrUnsetPinPropEndCbk ();
EXTERN void defrUnsetPropCbk ();
EXTERN void defrUnsetPropDefEndCbk ();
EXTERN void defrUnsetPropDefStartCbk ();
EXTERN void defrUnsetRegionCbk ();
EXTERN void defrUnsetRegionStartCbk ();
EXTERN void defrUnsetRegionEndCbk ();
EXTERN void defrUnsetRowCbk ();
EXTERN void defrUnsetScanChainExtCbk ();
EXTERN void defrUnsetScanchainCbk ();
EXTERN void defrUnsetScanchainsStartCbk ();
EXTERN void defrUnsetScanchainsEndCbk ();
EXTERN void defrUnsetSiteCbk ();
EXTERN void defrUnsetSlotCbk ();
EXTERN void defrUnsetSlotStartCbk ();
EXTERN void defrUnsetSlotEndCbk ();
EXTERN void defrUnsetSNetWireCbk ();
EXTERN void defrUnsetSNetCbk ();
EXTERN void defrUnsetSNetStartCbk ();
EXTERN void defrUnsetSNetEndCbk ();
EXTERN void defrUnsetSNetPartialPathCbk ();
EXTERN void defrUnsetStartPinsCbk ();
EXTERN void defrUnsetStylesCbk ();
EXTERN void defrUnsetStylesStartCbk ();
EXTERN void defrUnsetStylesEndCbk ();
EXTERN void defrUnsetTechnologyCbk ();
EXTERN void defrUnsetTimingDisableCbk ();
EXTERN void defrUnsetTimingDisablesStartCbk ();
EXTERN void defrUnsetTimingDisablesEndCbk ();
EXTERN void defrUnsetTrackCbk ();
EXTERN void defrUnsetUnitsCbk ();
EXTERN void defrUnsetVersionCbk ();
EXTERN void defrUnsetVersionStrCbk ();
EXTERN void defrUnsetViaCbk ();
EXTERN void defrUnsetViaExtCbk ();
EXTERN void defrUnsetViaStartCbk ();
EXTERN void defrUnsetViaEndCbk ();
/* Routine to set all unused callbacks. This is useful for checking */
/*to see if you missed something. */
EXTERN void defrSetUnusedCallbacks (defrVoidCbkFnType func);
/* Return the current line number in the input file. */
EXTERN int defrLineNumber ();
EXTERN long long defrLongLineNumber ();
/* Routine to set the message logging routine for errors */
typedef void (*DEFI_LOG_FUNCTION) (const char*);
EXTERN void defrSetLogFunction (DEFI_LOG_FUNCTION p0);
/* Routine to set the message logging routine for warnings */
#ifndef DEFI_WARNING_LOG_FUNCTION
typedef void (*DEFI_WARNING_LOG_FUNCTION) (const char*);
#endif
EXTERN void defrSetWarningLogFunction (DEFI_WARNING_LOG_FUNCTION p0);
/* Routine to set the user defined malloc routine */
typedef void* (*DEFI_MALLOC_FUNCTION) (size_t);
EXTERN void defrSetMallocFunction (DEFI_MALLOC_FUNCTION p0);
/* Routine to set the user defined realloc routine */
typedef void* (*DEFI_REALLOC_FUNCTION) (void*, size_t);
EXTERN void defrSetReallocFunction (DEFI_REALLOC_FUNCTION p0);
/* Routine to set the user defined free routine */
typedef void (*DEFI_FREE_FUNCTION) (void *);
EXTERN void defrSetFreeFunction (DEFI_FREE_FUNCTION p0);
/* Routine to set the line number of the file that is parsing routine (takes */
typedef void (*DEFI_LINE_NUMBER_FUNCTION) (int);
EXTERN void defrSetLineNumberFunction (DEFI_LINE_NUMBER_FUNCTION p0);
/* Routine to set the line number of the file that is parsing routine (takes */
typedef void (*DEFI_LONG_LINE_NUMBER_FUNCTION) (long long);
EXTERN void defrSetLongLineNumberFunction (DEFI_LONG_LINE_NUMBER_FUNCTION p0);
/* Set the number of lines before calling the line function callback routine */
/* Default is 10000 */
EXTERN void defrSetDeltaNumberLines (int p0);
/* Routine to set the read function */
typedef size_t (*DEFI_READ_FUNCTION) (FILE*, char*, size_t);
EXTERN void defrSetReadFunction (DEFI_READ_FUNCTION p0);
EXTERN void defrUnsetReadFunction ();
/* Routine to set the defrWarning.log to open as append instead for write */
/* New in 5.7 */
EXTERN void defrSetOpenLogFileAppend ();
EXTERN void defrUnsetOpenLogFileAppend ();
/* Routine to set the magic comment found routine */
typedef void (*DEFI_MAGIC_COMMENT_FOUND_FUNCTION) ();
EXTERN void defrSetMagicCommentFoundFunction (DEFI_MAGIC_COMMENT_FOUND_FUNCTION p0);
/* Routine to set the magic comment string */
EXTERN void defrSetMagicCommentString (char * p0);
/* Routine to disable string property value process, default it will process */
/* the value string */
EXTERN void defrDisablePropStrProcess ();
/* Testing purposes only */
EXTERN void defrSetNLines (long long n);
/* Routine to set the max number of warnings for a perticular section */
EXTERN void defrSetAssertionWarnings (int warn);
EXTERN void defrSetBlockageWarnings (int warn);
EXTERN void defrSetCaseSensitiveWarnings (int warn);
EXTERN void defrSetComponentWarnings (int warn);
EXTERN void defrSetConstraintWarnings (int warn);
EXTERN void defrSetDefaultCapWarnings (int warn);
EXTERN void defrSetGcellGridWarnings (int warn);
EXTERN void defrSetIOTimingWarnings (int warn);
EXTERN void defrSetNetWarnings (int warn);
EXTERN void defrSetNonDefaultWarnings (int warn);
EXTERN void defrSetPinExtWarnings (int warn);
EXTERN void defrSetPinWarnings (int warn);
EXTERN void defrSetRegionWarnings (int warn);
EXTERN void defrSetRowWarnings (int warn);
EXTERN void defrSetScanchainWarnings (int warn);
EXTERN void defrSetSNetWarnings (int warn);
EXTERN void defrSetStylesWarnings (int warn);
EXTERN void defrSetTrackWarnings (int warn);
EXTERN void defrSetUnitsWarnings (int warn);
EXTERN void defrSetVersionWarnings (int warn);
EXTERN void defrSetViaWarnings (int warn);
/* Handling output messages */
EXTERN void defrDisableParserMsgs (int nMsg, int* msgs);
EXTERN void defrEnableParserMsgs (int nMsg, int* msgs);
EXTERN void defrEnableAllMsgs ();
EXTERN void defrSetTotalMsgLimit (int totNumMsgs);
EXTERN void defrSetLimitPerMsg (int msgId, int numMsg);
/* Return codes for the user callbacks. */
/*The user should return one of these values. */
#define PARSE_OK 0
#define STOP_PARSE 1
#define PARSE_ERROR 2
/* Add this alias to the list for the parser */
EXTERN void defrAddAlias (const char* key, const char* value, int marked, defrData * data);
#endif