1 /* -*- tab-width: 4 -*- 2 * 3 * Electric(tm) VLSI Design System 4 * 5 * File: conlay.h 6 * Hierarchical layout constraint system 7 * Written by: Steven M. Rubin, Static Free Software 8 * 9 * Copyright (c) 2000 Static Free Software. 10 * 11 * Electric(tm) is free software; you can redistribute it and/or modify 12 * it under the terms of the GNU General Public License as published by 13 * the Free Software Foundation; either version 2 of the License, or 14 * (at your option) any later version. 15 * 16 * Electric(tm) is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * GNU General Public License for more details. 20 * 21 * You should have received a copy of the GNU General Public License 22 * along with Electric(tm); see the file COPYING. If not, write to 23 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, 24 * Boston, Mass 02111-1307, USA. 25 * 26 * Static Free Software 27 * 4119 Alpine Road 28 * Portola Valley, California 94028 29 * info@staticfreesoft.com 30 */ 31 32 #if defined(__cplusplus) && !defined(ALLCPLUSPLUS) 33 extern "C" 34 { 35 #endif 36 37 #define CHANGETYPERIGID 0 /* make arc rigid */ 38 #define CHANGETYPEUNRIGID 1 /* make arc un-rigid */ 39 #define CHANGETYPEFIXEDANGLE 2 /* make arc fixed-angle */ 40 #define CHANGETYPENOTFIXEDANGLE 3 /* make arc not fixed-angle */ 41 #define CHANGETYPESLIDABLE 4 /* make arc slidable */ 42 #define CHANGETYPENOTSLIDABLE 5 /* make arc nonslidable */ 43 #define CHANGETYPETEMPRIGID 6 /* make arc temporarily rigid */ 44 #define CHANGETYPETEMPUNRIGID 7 /* make arc temporarily un-rigid */ 45 #define CHANGETYPEREMOVETEMP 8 /* remove temporarily state of arc */ 46 47 extern CONSTRAINT *cla_constraint; /* the constraint object for this solver */ 48 extern INTBIG cla_changeclock; /* timestamp for changes */ 49 50 void cla_layconinit(CONSTRAINT*); 51 void cla_layconterm(void); 52 void cla_layconsetmode(INTBIG, CHAR*[]); 53 INTBIG cla_layconrequest(CHAR*, INTBIG); 54 void cla_layconsolve(NODEPROTO*); 55 void cla_layconnewobject(INTBIG, INTBIG); 56 void cla_layconkillobject(INTBIG, INTBIG); 57 BOOLEAN cla_layconsetobject(INTBIG, INTBIG, INTBIG, INTBIG); 58 void cla_layconmodifynodeinst(NODEINST*, INTBIG, INTBIG, INTBIG, INTBIG, INTBIG, INTBIG); 59 void cla_layconmodifynodeinsts(INTBIG, NODEINST**, INTBIG*, INTBIG*, INTBIG*, INTBIG*, INTBIG*, INTBIG*); 60 void cla_layconmodifyarcinst(ARCINST*, INTBIG, INTBIG, INTBIG, INTBIG, INTBIG, INTBIG); 61 void cla_layconmodifyportproto(PORTPROTO*, NODEINST*, PORTPROTO*); 62 void cla_layconmodifynodeproto(NODEPROTO*); 63 void cla_layconmodifydescript(INTBIG, INTBIG, INTBIG, UINTBIG*); 64 void cla_layconnewlib(LIBRARY*); 65 void cla_layconkilllib(LIBRARY*); 66 void cla_layconnewvariable(INTBIG, INTBIG, INTBIG, INTBIG); 67 void cla_layconkillvariable(INTBIG, INTBIG, INTBIG, INTBIG, INTBIG, UINTBIG*); 68 void cla_layconmodifyvariable(INTBIG, INTBIG, INTBIG, INTBIG, INTBIG, INTBIG); 69 void cla_layconinsertvariable(INTBIG, INTBIG, INTBIG, INTBIG); 70 void cla_laycondeletevariable(INTBIG, INTBIG, INTBIG, INTBIG, INTBIG); 71 void cla_layconsetvariable(void); 72 73 #if defined(__cplusplus) && !defined(ALLCPLUSPLUS) 74 } 75 #endif 76 77 extern COMCOMP cla_layconp; 78