/*
 * cif.h --
 *
 * This procedure defines things that are exported by the
 * cif module to the rest of the world.
 *
 *     ********************************************************************* 
 *     * Copyright (C) 1985, 1990 Regents of the University of California. * 
 *     * Permission to use, copy, modify, and distribute this              * 
 *     * software and its documentation for any purpose and without        * 
 *     * fee is hereby granted, provided that the above copyright          * 
 *     * notice appear in all copies.  The University of California        * 
 *     * makes no representations about the suitability of this            * 
 *     * software for any purpose.  It is provided "as is" without         * 
 *     * express or implied warranty.  Export of this software outside     * 
 *     * of the United States of America may require an export license.    * 
 *     *********************************************************************
 *
 *
 * rcsid "$Header: /ufs/repository/magic/cif/cif.h,v 1.4 2006/07/08 19:04:38 fang Exp $
 */

#ifndef _CIF
#define _CIF

#include "cif/ciftypes.h"

#include "misc/magic.h"
#include "database/database_types.h"
#include "utils/geometry_types.h"

/* Procedures that parse the cif sections of a technology file. */

extern void CIFTechInit(void);
extern bool CIFTechLine(char*, int, char*[]);
extern void CIFTechFinal(void);
extern void CIFReadTechInit(void);
extern bool CIFReadTechLine(char*, int, char*[]);
extern void CIFReadTechFinal(void);

/* Externally-visible procedures: */

extern void CIFSeeLayer(CellDef*, Rect*, char*);
extern void CIFSeeHierLayer(CellDef*, Rect*, char*, bool, bool);
extern void CIFPrintStats(void);

extern bool CIFWrite(CellDef*, FILE*);
extern bool CIFWriteFlat(CellDef*, FILE*);
extern void CIFReadFile(FILE*);

extern void CIFSetStyle(char*);
extern void CIFSetReadStyle(char*);

extern int CIFOutputScaleFactor(void);

extern int CIFCalmaLayerToCifLayer(
	int layer, int datatype, CIFReadStyle* calmaStyle);
extern void CIFTechInputScale(int, int);
extern void CIFTechOutputScale(int, int);

#endif	/* _CIF */
