* ========== Copyright Header Begin ==========================================
* OpenSPARC T2 Processor File: veriuser.h
* Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
* 4150 Network Circle, Santa Clara, California 95054, U.S.A.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* For the avoidance of doubt, and except that if any non-GPL license
* choice is available it will apply instead, Sun elects to use only
* the General Public License version 2 (GPLv2) at this time for any
* software where a choice of GPL license versions is made
* available with the language indicating that GPLv2 or any later version
* may be used, or where a choice of which version of the GPL is applied is
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* ========== Copyright Header End ============================================
/*---------------------------------------------------------------------------*/
/*------------------------------- definitions -------------------------------*/
/*---------------------------------------------------------------------------*/
/*----------------------------- general defines -----------------------------*/
/*---------------------- defines for error interception ---------------------*/
/*-------------- values for reason parameter to misctf routines -------------*/
#define REASON_CHECKTF reason_checktf
#define REASON_SIZETF reason_sizetf
#define REASON_CALLTF reason_calltf
#define REASON_SAVE reason_save
#define REASON_RESTART reason_restart
#define REASON_DISABLE reason_disable
#define REASON_PARAMVC reason_paramvc
#define REASON_SYNCH reason_synch
#define REASON_FINISH reason_finish
#define reason_reactivate 10
#define REASON_REACTIVATE reason_reactivate
#define reason_rosynch 11
#define REASON_ROSYNCH reason_rosynch
#define reason_paramdrc 15
#define REASON_PARAMDRC reason_paramdrc
#define reason_endofcompile 16
#define REASON_ENDOFCOMPILE reason_endofcompile
#define REASON_SCOPE reason_scope
#define reason_interactive 18
#define REASON_INTERACTIVE reason_interactive
#define REASON_RESET reason_reset
#define reason_endofreset 20
#define REASON_ENDOFRESET reason_endofreset
#define REASON_FORCE reason_force
#define reason_release 22
#define REASON_RELEASE reason_release
#define reason_startofsave 27
#define reason_startofrestart 28
/*-- types used by tf_typep() and expr_type field in tf_exprinfo structure --*/
#define TF_NULLPARAM tf_nullparam
#define TF_STRING tf_string
#define tf_specialparam 2
#define TF_SPECIALPARAM tf_specialparam
#define TF_READONLY tf_readonly
#define TF_READWRITE tf_readwrite
#define tf_rwbitselect 12
#define TF_RWBITSELECT tf_rwbitselect
#define tf_rwpartselect 13
#define TF_RWPARTSELECT tf_rwpartselect
#define tf_rwmemselect 14
#define TF_RWMEMSELECT tf_rwmemselect
#define tf_readonlyreal 15
#define TF_READONLYREAL tf_readonlyreal
#define tf_readwritereal 16
#define TF_READWRITEREAL tf_readwritereal
/*---------- types used by node_type field in tf_nodeinfo structure ---------*/
#define TF_NULL_NODE tf_null_node
#define TF_REG_NODE tf_reg_node
#define tf_integer_node 102
#define TF_INTEGER_NODE tf_integer_node
#define TF_TIME_NODE tf_time_node
#define tf_netvector_node 104
#define TF_NETVECTOR_NODE tf_netvector_node
#define tf_netscalar_node 105
#define TF_NETSCALAR_NODE tf_netscalar_node
#define tf_memory_node 106
#define TF_MEMORY_NODE tf_memory_node
#define TF_REAL_NODE tf_real_node
#define TF_MDA_NODE tf_mda_node
#define tf_wiremda_node 109
#define TF_WIREMDA_NODE tf_wiremda_node
/*---------------------------------------------------------------------------*/
/*-------------------------- structure definitions --------------------------*/
/*---------------------------------------------------------------------------*/
/*----- structure used with tf_exprinfo() to get expression information -----*/
typedef struct t_tfexprinfo
struct t_vecval
*expr_value_p
;
} s_tfexprinfo
, *p_tfexprinfo
;
/*------- structure for use with tf_nodeinfo() to get node information ------*/
typedef struct t_tfnodeinfo
struct t_vecval
*vecval_p
;
struct t_strengthval
*strengthval_p
;
} s_tfnodeinfo
, *p_tfnodeinfo
;
/*------- structure for use with tf_mdanodeinfo() to get mda
node information ------ */
typedef struct t_tfmdanodeinfo
} s_tfmdanodeinfo
, *p_tfmdanodeinfo
;
/*--------------------- data structure of vector values ---------------------*/
/*--------------- data structure of scalar net strength values --------------*/
typedef struct t_strengthval
} s_strengthval
, *p_strengthval
;
/*---------------------------------------------------------------------------*/
/*--------------------------- routine definitions ---------------------------*/
/*---------------------------------------------------------------------------*/
#if defined(__STDC__) || defined(__cplusplus) || defined(_AIX)
#define PROTO_PARAMS(params) params
#define DEFINED_PROTO_PARAMS
#define PROTO_PARAMS(params) (/* nothing */)
#define DEFINED_PROTO_PARAMS
/* Make sure the 64-bit platforms are correctly prototyped. */
#if defined(__sparcv9) || defined(__LP64__) || defined(__ia64)
# define LP64BIT long /* a 64-bit object */
# define LP64BIT int /* a 32-bit object */
EXTERN
void io_mcdprintf
PROTO_PARAMS((int mcd
, const char *format
, ...));
EXTERN
void io_printf
PROTO_PARAMS((char *format
, ...));
EXTERN
char *mc_scan_plusargs
PROTO_PARAMS((const char *plusarg
));
EXTERN
int tf_add_long
PROTO_PARAMS((int *aof_lowtime1
, int *aof_hightime1
, int lowtime2
, int hightime2
));
EXTERN
int tf_asynchoff
PROTO_PARAMS((void));
EXTERN
int tf_asynchon
PROTO_PARAMS((void));
EXTERN
int tf_clearalldelays
PROTO_PARAMS((void));
EXTERN
int tf_compare_long
PROTO_PARAMS((unsigned int low1
, unsigned int high1
, unsigned int low2
, unsigned int high2
));
EXTERN
int tf_copypvc_flag
PROTO_PARAMS((int nparam
));
EXTERN
void tf_divide_long
PROTO_PARAMS((int *aof_low1
, int *aof_high1
, int low2
, int high2
));
EXTERN
int tf_dofinish
PROTO_PARAMS((void));
EXTERN
int tf_dostop
PROTO_PARAMS((void));
EXTERN
int tf_error
PROTO_PARAMS((char *fmt
, ...));
EXTERN
int tf_evaluatep
PROTO_PARAMS((int pnum
));
EXTERN p_tfexprinfo tf_exprinfo
PROTO_PARAMS((int pnum
, p_tfexprinfo pinfo
));
EXTERN
char *tf_getcstringp
PROTO_PARAMS((int nparam
));
EXTERN
char *tf_getinstance
PROTO_PARAMS((void));
EXTERN
int tf_getlongp
PROTO_PARAMS((int *aof_highvalue
, int pnum
));
EXTERN
int tf_getlongtime
PROTO_PARAMS((int *aof_hightime
));
EXTERN
int tf_getnextlongtime
PROTO_PARAMS((int *aof_lowtime
, int *aof_hightime
));
EXTERN LP64BIT tf_getp
PROTO_PARAMS((int pnum
));
EXTERN
int tf_getpchange
PROTO_PARAMS((int nparam
));
EXTERN
double tf_getrealp
PROTO_PARAMS((int pnum
));
EXTERN
double tf_getrealtime
PROTO_PARAMS((void));
EXTERN
char *tf_gettflist
PROTO_PARAMS((void));
EXTERN
int tf_gettime
PROTO_PARAMS((void));
EXTERN
int tf_gettimeprecision
PROTO_PARAMS((void));
EXTERN
int tf_gettimeunit
PROTO_PARAMS((void));
EXTERN
char *tf_getworkarea
PROTO_PARAMS((void));
EXTERN
int tf_iasynchoff
PROTO_PARAMS((char *inst
));
EXTERN
int tf_iasynchon
PROTO_PARAMS((char *inst
));
EXTERN
int tf_iclearalldelays
PROTO_PARAMS((char *inst
));
EXTERN
int tf_icopypvc_flag
PROTO_PARAMS((int nparam
, char *inst
));
EXTERN
int tf_ievaluatep
PROTO_PARAMS((int pnum
, char *inst
));
EXTERN p_tfexprinfo tf_iexprinfo
PROTO_PARAMS((int pnum
, p_tfexprinfo pinfo
, char *inst
));
EXTERN
char *tf_igetcstringp
PROTO_PARAMS((int nparam
, char *inst
));
EXTERN
int tf_igetlongp
PROTO_PARAMS((int *aof_highvalue
, int pnum
, char *inst
));
EXTERN
int tf_igetlongtime
PROTO_PARAMS((int *aof_hightime
, char *inst
));
EXTERN LP64BIT tf_igetp
PROTO_PARAMS((int pnum
, char *inst
));
EXTERN
int tf_igetpchange
PROTO_PARAMS((int nparam
, char *inst
));
EXTERN
double tf_igetrealp
PROTO_PARAMS((int pnum
, char *inst
));
EXTERN
double tf_igetrealtime
PROTO_PARAMS((char *inst
));
EXTERN
int tf_igettime
PROTO_PARAMS((char *inst
));
EXTERN
int tf_igettimeprecision
PROTO_PARAMS((char *inst
));
EXTERN
int tf_igettimeunit
PROTO_PARAMS((char *inst
));
EXTERN
char *tf_igetworkarea
PROTO_PARAMS((char *inst
));
EXTERN
char *tf_imipname
PROTO_PARAMS((char *cell
));
EXTERN
int tf_imovepvc_flag
PROTO_PARAMS((int nparam
, char *inst
));
EXTERN p_tfnodeinfo tf_inodeinfo
PROTO_PARAMS((int pnum
, p_tfnodeinfo pinfo
, char *inst
));
EXTERN
int tf_inump
PROTO_PARAMS((char *inst
));
EXTERN
int tf_ipropagatep
PROTO_PARAMS((int pnum
, char *inst
));
EXTERN
int tf_iputlongp
PROTO_PARAMS((int pnum
, int lowvalue
, int highvalue
, char *inst
));
EXTERN
int tf_iputp
PROTO_PARAMS((int pnum
, int value
, char *inst
));
EXTERN
int tf_iputrealp
PROTO_PARAMS((int pnum
, double value
, char *inst
));
EXTERN
int tf_irosynchronize
PROTO_PARAMS((char *inst
));
EXTERN
int tf_isetdelay
PROTO_PARAMS((int delay
, char *inst
));
EXTERN
int tf_isetlongdelay
PROTO_PARAMS((int lowdelay
, int highdelay
, char *inst
));
EXTERN
int tf_isetrealdelay
PROTO_PARAMS((double realdelay
, char *inst
));
EXTERN
int tf_isetworkarea
PROTO_PARAMS((char *workarea
, char *inst
));
EXTERN
int tf_isizep
PROTO_PARAMS((int pnum
, char *inst
));
EXTERN
char *tf_ispname
PROTO_PARAMS((char *cell
));
EXTERN
int tf_istrdelputp
PROTO_PARAMS((int nparam
, int bitlength
, int format_char
, char *value_p
, int delay
, int delaytype
, char *inst
));
EXTERN
char *tf_istrgetp
PROTO_PARAMS((int pnum
, int format_char
, char *inst
));
EXTERN
int tf_istrlongdelputp
PROTO_PARAMS((int nparam
, int bitlength
, int format_char
, char *value_p
, int lowdelay
, int highdelay
, int delaytype
, char *inst
));
EXTERN
int tf_istrrealdelputp
PROTO_PARAMS((int nparam
, int bitlength
, int format_char
, char *value_p
, double realdelay
, int delaytype
, char *inst
));
EXTERN
int tf_isynchronize
PROTO_PARAMS((char *inst
));
EXTERN
int tf_itestpvc_flag
PROTO_PARAMS((int nparam
, char *inst
));
EXTERN
int tf_itypep
PROTO_PARAMS((int pnum
, char *inst
));
EXTERN
void tf_long_to_real
PROTO_PARAMS((int int_lo
, int int_hi
, double *aof_real
));
EXTERN
char *tf_longtime_tostr
PROTO_PARAMS((int lowtime
, int hightime
));
EXTERN
int tf_message
PROTO_PARAMS((int level
, char *facility
, char *messno
, char *message
, ...));
EXTERN
char *tf_mipname
PROTO_PARAMS((void));
EXTERN
int tf_movepvc_flag
PROTO_PARAMS((int nparam
));
EXTERN
void tf_multiply_long
PROTO_PARAMS((int *aof_low1
, int *aof_high1
, int low2
, int high2
));
EXTERN p_tfnodeinfo tf_nodeinfo
PROTO_PARAMS((int pnum
, p_tfnodeinfo pinfo
));
EXTERN
int tf_nump
PROTO_PARAMS((void));
EXTERN
int tf_propagatep
PROTO_PARAMS((int pnum
));
EXTERN
int tf_putlongp
PROTO_PARAMS((int pnum
, int lowvalue
, int highvalue
));
EXTERN
int tf_putp
PROTO_PARAMS((int pnum
, int value
));
EXTERN
int tf_putrealp
PROTO_PARAMS((int pnum
, double value
));
EXTERN
int tf_read_restart
PROTO_PARAMS((char *blockptr
, int blocklen
));
EXTERN
void tf_real_to_long
PROTO_PARAMS((double real
, int *aof_int_lo
, int *aof_int_hi
));
EXTERN
int tf_rosynchronize
PROTO_PARAMS((void));
EXTERN
void tf_scale_longdelay
PROTO_PARAMS((char *cell
, int delay_lo
, int delay_hi
, int *aof_delay_lo
, int *aof_delay_hi
));
EXTERN
void tf_scale_realdelay
PROTO_PARAMS((char *cell
, double realdelay
, double *aof_realdelay
));
EXTERN
int tf_setdelay
PROTO_PARAMS((int delay
));
EXTERN
int tf_setlongdelay
PROTO_PARAMS((int lowdelay
, int highdelay
));
EXTERN
int tf_setrealdelay
PROTO_PARAMS((double realdelay
));
EXTERN
int tf_setworkarea
PROTO_PARAMS((char *workarea
));
EXTERN
int tf_sizep
PROTO_PARAMS((int pnum
));
EXTERN
char *tf_spname
PROTO_PARAMS((void));
EXTERN
int tf_strdelputp
PROTO_PARAMS((int nparam
, int bitlength
, int format_char
, char *value_p
, int delay
, int delaytype
));
EXTERN
char *tf_strgetp
PROTO_PARAMS((int pnum
, int format_char
));
EXTERN
char *tf_strgetscaledtime
PROTO_PARAMS((void));
EXTERN
char *tf_strgettime
PROTO_PARAMS((void));
EXTERN
int tf_strlongdelputp
PROTO_PARAMS((int nparam
, int bitlength
, int format_char
, char *value_p
, int lowdelay
, int highdelay
, int delaytype
));
EXTERN
int tf_strrealdelputp
PROTO_PARAMS((int nparam
, int bitlength
, int format_char
, char *value_p
, double realdelay
, int delaytype
));
EXTERN
int tf_subtract_long
PROTO_PARAMS((int *aof_lowtime1
, int *aof_hightime1
, int lowtime2
, int hightime2
));
EXTERN
int tf_synchronize
PROTO_PARAMS((void));
EXTERN
int tf_testpvc_flag
PROTO_PARAMS((int nparam
));
EXTERN
int tf_text
PROTO_PARAMS((char *fmt
, ...));
EXTERN
int tf_typep
PROTO_PARAMS((int pnum
));
EXTERN
void tf_unscale_longdelay
PROTO_PARAMS((char *cell
, int delay_lo
, int delay_hi
, int *aof_delay_lo
, int *aof_delay_hi
));
EXTERN
void tf_unscale_realdelay
PROTO_PARAMS((char *cell
, double realdelay
, double *aof_realdelay
));
EXTERN
int tf_warning
PROTO_PARAMS((char *fmt
, ...));
EXTERN
int tf_write_save
PROTO_PARAMS((char *blockptr
, int blocklen
));
EXTERN
char *tf_getroutine
PROTO_PARAMS((void));
EXTERN
char *tf_igetroutine
PROTO_PARAMS((char *inst
));
/* routines added for MDA support */
EXTERN p_tfmdanodeinfo tf_mdanodeinfo
PROTO_PARAMS((int pnum
, p_tfmdanodeinfo pinfo
));
EXTERN p_tfmdanodeinfo tf_imdanodeinfo
PROTO_PARAMS((int pnum
, p_tfmdanodeinfo pinfo
, char *inst
));
#ifdef DEFINED_PROTO_PARAMS
# undef DEFINED_PROTO_PARAMS