| 1 | /* |
| 2 | * ========== Copyright Header Begin ========================================== |
| 3 | * |
| 4 | * OpenSPARC T2 Processor File: veriuser.h |
| 5 | * Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved |
| 6 | * 4150 Network Circle, Santa Clara, California 95054, U.S.A. |
| 7 | * |
| 8 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| 9 | * |
| 10 | * This program is free software; you can redistribute it and/or modify |
| 11 | * it under the terms of the GNU General Public License as published by |
| 12 | * the Free Software Foundation; version 2 of the License. |
| 13 | * |
| 14 | * This program is distributed in the hope that it will be useful, |
| 15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 17 | * GNU General Public License for more details. |
| 18 | * |
| 19 | * You should have received a copy of the GNU General Public License |
| 20 | * along with this program; if not, write to the Free Software |
| 21 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
| 22 | * |
| 23 | * For the avoidance of doubt, and except that if any non-GPL license |
| 24 | * choice is available it will apply instead, Sun elects to use only |
| 25 | * the General Public License version 2 (GPLv2) at this time for any |
| 26 | * software where a choice of GPL license versions is made |
| 27 | * available with the language indicating that GPLv2 or any later version |
| 28 | * may be used, or where a choice of which version of the GPL is applied is |
| 29 | * otherwise unspecified. |
| 30 | * |
| 31 | * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, |
| 32 | * CA 95054 USA or visit www.sun.com if you need additional information or |
| 33 | * have any questions. |
| 34 | * |
| 35 | * |
| 36 | * ========== Copyright Header End ============================================ |
| 37 | */ |
| 38 | #ifndef VERIUSER_H |
| 39 | #define VERIUSER_H |
| 40 | |
| 41 | /*---------------------------------------------------------------------------*/ |
| 42 | /*------------------------------- definitions -------------------------------*/ |
| 43 | /*---------------------------------------------------------------------------*/ |
| 44 | |
| 45 | #if defined(__cplusplus) |
| 46 | extern "C" { |
| 47 | #endif |
| 48 | |
| 49 | /*----------------------------- general defines -----------------------------*/ |
| 50 | |
| 51 | #ifndef PLI_EXTRAS |
| 52 | #define PLI_EXTRAS 1 |
| 53 | #define true 1 |
| 54 | #define TRUE 1 |
| 55 | #define false 0 |
| 56 | #define FALSE 0 |
| 57 | #define bool int |
| 58 | #endif /* PLI_EXTRAS */ |
| 59 | |
| 60 | /*---------------------- defines for error interception ---------------------*/ |
| 61 | |
| 62 | #define ERR_MESSAGE 1 |
| 63 | #define ERR_WARNING 2 |
| 64 | #define ERR_ERROR 3 |
| 65 | #define ERR_INTERNAL 4 |
| 66 | #define ERR_SYSTEM 5 |
| 67 | |
| 68 | /*-------------- values for reason parameter to misctf routines -------------*/ |
| 69 | |
| 70 | #define reason_checktf 1 |
| 71 | #define REASON_CHECKTF reason_checktf |
| 72 | #define reason_sizetf 2 |
| 73 | #define REASON_SIZETF reason_sizetf |
| 74 | #define reason_calltf 3 |
| 75 | #define REASON_CALLTF reason_calltf |
| 76 | #define reason_save 4 |
| 77 | #define REASON_SAVE reason_save |
| 78 | #define reason_restart 5 |
| 79 | #define REASON_RESTART reason_restart |
| 80 | #define reason_disable 6 |
| 81 | #define REASON_DISABLE reason_disable |
| 82 | #define reason_paramvc 7 |
| 83 | #define REASON_PARAMVC reason_paramvc |
| 84 | #define reason_synch 8 |
| 85 | #define REASON_SYNCH reason_synch |
| 86 | #define reason_finish 9 |
| 87 | #define REASON_FINISH reason_finish |
| 88 | #define reason_reactivate 10 |
| 89 | #define REASON_REACTIVATE reason_reactivate |
| 90 | #define reason_rosynch 11 |
| 91 | #define REASON_ROSYNCH reason_rosynch |
| 92 | #define reason_paramdrc 15 |
| 93 | #define REASON_PARAMDRC reason_paramdrc |
| 94 | #define reason_endofcompile 16 |
| 95 | #define REASON_ENDOFCOMPILE reason_endofcompile |
| 96 | #define reason_scope 17 |
| 97 | #define REASON_SCOPE reason_scope |
| 98 | #define reason_interactive 18 |
| 99 | #define REASON_INTERACTIVE reason_interactive |
| 100 | #define reason_reset 19 |
| 101 | #define REASON_RESET reason_reset |
| 102 | #define reason_endofreset 20 |
| 103 | #define REASON_ENDOFRESET reason_endofreset |
| 104 | #define reason_force 21 |
| 105 | #define REASON_FORCE reason_force |
| 106 | #define reason_release 22 |
| 107 | #define REASON_RELEASE reason_release |
| 108 | #define reason_startofsave 27 |
| 109 | #define reason_startofrestart 28 |
| 110 | #define REASON_MAX 28 |
| 111 | |
| 112 | /*-- types used by tf_typep() and expr_type field in tf_exprinfo structure --*/ |
| 113 | #define tf_nullparam 0 |
| 114 | #define TF_NULLPARAM tf_nullparam |
| 115 | #define tf_string 1 |
| 116 | #define TF_STRING tf_string |
| 117 | #define tf_specialparam 2 |
| 118 | #define TF_SPECIALPARAM tf_specialparam |
| 119 | #define tf_readonly 10 |
| 120 | #define TF_READONLY tf_readonly |
| 121 | #define tf_readwrite 11 |
| 122 | #define TF_READWRITE tf_readwrite |
| 123 | #define tf_rwbitselect 12 |
| 124 | #define TF_RWBITSELECT tf_rwbitselect |
| 125 | #define tf_rwpartselect 13 |
| 126 | #define TF_RWPARTSELECT tf_rwpartselect |
| 127 | #define tf_rwmemselect 14 |
| 128 | #define TF_RWMEMSELECT tf_rwmemselect |
| 129 | #define tf_readonlyreal 15 |
| 130 | #define TF_READONLYREAL tf_readonlyreal |
| 131 | #define tf_readwritereal 16 |
| 132 | #define TF_READWRITEREAL tf_readwritereal |
| 133 | |
| 134 | /*---------- types used by node_type field in tf_nodeinfo structure ---------*/ |
| 135 | #define tf_null_node 100 |
| 136 | #define TF_NULL_NODE tf_null_node |
| 137 | #define tf_reg_node 101 |
| 138 | #define TF_REG_NODE tf_reg_node |
| 139 | #define tf_integer_node 102 |
| 140 | #define TF_INTEGER_NODE tf_integer_node |
| 141 | #define tf_time_node 103 |
| 142 | #define TF_TIME_NODE tf_time_node |
| 143 | #define tf_netvector_node 104 |
| 144 | #define TF_NETVECTOR_NODE tf_netvector_node |
| 145 | #define tf_netscalar_node 105 |
| 146 | #define TF_NETSCALAR_NODE tf_netscalar_node |
| 147 | #define tf_memory_node 106 |
| 148 | #define TF_MEMORY_NODE tf_memory_node |
| 149 | #define tf_real_node 107 |
| 150 | #define TF_REAL_NODE tf_real_node |
| 151 | #define tf_mda_node 108 |
| 152 | #define TF_MDA_NODE tf_mda_node |
| 153 | #define tf_wiremda_node 109 |
| 154 | #define TF_WIREMDA_NODE tf_wiremda_node |
| 155 | |
| 156 | |
| 157 | /*---------------------------------------------------------------------------*/ |
| 158 | /*-------------------------- structure definitions --------------------------*/ |
| 159 | /*---------------------------------------------------------------------------*/ |
| 160 | |
| 161 | /*----- structure used with tf_exprinfo() to get expression information -----*/ |
| 162 | typedef struct t_tfexprinfo |
| 163 | { |
| 164 | short expr_type; |
| 165 | short padding; |
| 166 | struct t_vecval *expr_value_p; |
| 167 | double real_value; |
| 168 | char *expr_string; |
| 169 | int expr_ngroups; |
| 170 | int expr_vec_size; |
| 171 | int expr_sign; |
| 172 | int expr_lhs_select; |
| 173 | int expr_rhs_select; |
| 174 | } s_tfexprinfo, *p_tfexprinfo; |
| 175 | |
| 176 | /*------- structure for use with tf_nodeinfo() to get node information ------*/ |
| 177 | typedef struct t_tfnodeinfo |
| 178 | { |
| 179 | short node_type; |
| 180 | short padding; |
| 181 | union { |
| 182 | struct t_vecval *vecval_p; |
| 183 | struct t_strengthval *strengthval_p; |
| 184 | char *memoryval_p; |
| 185 | double *real_val_p; |
| 186 | } node_value; |
| 187 | char *node_symbol; |
| 188 | int node_ngroups; |
| 189 | int node_vec_size; |
| 190 | int node_sign; |
| 191 | int node_ms_index; |
| 192 | int node_ls_index; |
| 193 | int node_mem_size; |
| 194 | int node_lhs_element; |
| 195 | int node_rhs_element; |
| 196 | int *node_handle; |
| 197 | } s_tfnodeinfo, *p_tfnodeinfo; |
| 198 | |
| 199 | /*------- structure for use with tf_mdanodeinfo() to get mda |
| 200 | node information ------ */ |
| 201 | |
| 202 | typedef struct t_tfmdanodeinfo |
| 203 | { |
| 204 | short node_type; |
| 205 | short node_fulltype; |
| 206 | char *memoryval_p; |
| 207 | char *node_symbol; |
| 208 | int node_ngroups; |
| 209 | int node_vec_size; |
| 210 | int node_sign; |
| 211 | int node_ms_index; |
| 212 | int node_ls_index; |
| 213 | int node_mem_size; |
| 214 | int *node_lhs_element; |
| 215 | int *node_rhs_element; |
| 216 | int node_dimension; |
| 217 | int *node_handle; |
| 218 | int node_vec_type; |
| 219 | } s_tfmdanodeinfo, *p_tfmdanodeinfo; |
| 220 | |
| 221 | |
| 222 | /*--------------------- data structure of vector values ---------------------*/ |
| 223 | typedef struct t_vecval |
| 224 | { |
| 225 | int avalbits; |
| 226 | int bvalbits; |
| 227 | } s_vecval, *p_vecval; |
| 228 | |
| 229 | /*--------------- data structure of scalar net strength values --------------*/ |
| 230 | typedef struct t_strengthval |
| 231 | { |
| 232 | int strength0; |
| 233 | int strength1; |
| 234 | } s_strengthval, *p_strengthval; |
| 235 | |
| 236 | /*---------------------------------------------------------------------------*/ |
| 237 | /*--------------------------- routine definitions ---------------------------*/ |
| 238 | /*---------------------------------------------------------------------------*/ |
| 239 | |
| 240 | #if defined(__STDC__) || defined(__cplusplus) || defined(_AIX) |
| 241 | |
| 242 | #ifndef PROTO_PARAMS |
| 243 | #define PROTO_PARAMS(params) params |
| 244 | #define DEFINED_PROTO_PARAMS |
| 245 | #endif |
| 246 | #ifndef EXTERN |
| 247 | #define EXTERN |
| 248 | #define DEFINED_EXTERN |
| 249 | #endif |
| 250 | |
| 251 | #else |
| 252 | |
| 253 | #ifndef PROTO_PARAMS |
| 254 | #define PROTO_PARAMS(params) (/* nothing */) |
| 255 | #define DEFINED_PROTO_PARAMS |
| 256 | #endif |
| 257 | #ifndef EXTERN |
| 258 | #define EXTERN extern |
| 259 | #define DEFINED_EXTERN |
| 260 | #endif |
| 261 | |
| 262 | #endif /* __STDC__ */ |
| 263 | |
| 264 | /* Make sure the 64-bit platforms are correctly prototyped. */ |
| 265 | #if !defined(_LP64) |
| 266 | #if defined(__sparcv9) || defined(__LP64__) || defined(__ia64) |
| 267 | #define _LP64 1 |
| 268 | # endif |
| 269 | #endif |
| 270 | |
| 271 | #if defined(_LP64) |
| 272 | # define LP64BIT long /* a 64-bit object */ |
| 273 | #else |
| 274 | # define LP64BIT int /* a 32-bit object */ |
| 275 | #endif |
| 276 | |
| 277 | EXTERN void io_mcdprintf PROTO_PARAMS((int mcd, const char *format, ...)); |
| 278 | EXTERN void io_printf PROTO_PARAMS((char *format, ...)); |
| 279 | EXTERN char *mc_scan_plusargs PROTO_PARAMS((const char *plusarg)); |
| 280 | EXTERN int tf_add_long PROTO_PARAMS((int *aof_lowtime1, int *aof_hightime1, int lowtime2, int hightime2)); |
| 281 | EXTERN int tf_asynchoff PROTO_PARAMS((void)); |
| 282 | EXTERN int tf_asynchon PROTO_PARAMS((void)); |
| 283 | EXTERN int tf_clearalldelays PROTO_PARAMS((void)); |
| 284 | EXTERN int tf_compare_long PROTO_PARAMS((unsigned int low1, unsigned int high1, unsigned int low2, unsigned int high2)); |
| 285 | EXTERN int tf_copypvc_flag PROTO_PARAMS((int nparam)); |
| 286 | EXTERN void tf_divide_long PROTO_PARAMS((int *aof_low1, int *aof_high1, int low2, int high2)); |
| 287 | EXTERN int tf_dofinish PROTO_PARAMS((void)); |
| 288 | EXTERN int tf_dostop PROTO_PARAMS((void)); |
| 289 | EXTERN int tf_error PROTO_PARAMS((char *fmt, ...)); |
| 290 | EXTERN int tf_evaluatep PROTO_PARAMS((int pnum)); |
| 291 | EXTERN p_tfexprinfo tf_exprinfo PROTO_PARAMS((int pnum, p_tfexprinfo pinfo)); |
| 292 | EXTERN char *tf_getcstringp PROTO_PARAMS((int nparam)); |
| 293 | EXTERN char *tf_getinstance PROTO_PARAMS((void)); |
| 294 | EXTERN int tf_getlongp PROTO_PARAMS((int *aof_highvalue, int pnum)); |
| 295 | EXTERN int tf_getlongtime PROTO_PARAMS((int *aof_hightime)); |
| 296 | EXTERN int tf_getnextlongtime PROTO_PARAMS((int *aof_lowtime, int *aof_hightime)); |
| 297 | EXTERN LP64BIT tf_getp PROTO_PARAMS((int pnum)); |
| 298 | EXTERN int tf_getpchange PROTO_PARAMS((int nparam)); |
| 299 | EXTERN double tf_getrealp PROTO_PARAMS((int pnum)); |
| 300 | EXTERN double tf_getrealtime PROTO_PARAMS((void)); |
| 301 | EXTERN char *tf_gettflist PROTO_PARAMS((void)); |
| 302 | EXTERN int tf_gettime PROTO_PARAMS((void)); |
| 303 | EXTERN int tf_gettimeprecision PROTO_PARAMS((void)); |
| 304 | EXTERN int tf_gettimeunit PROTO_PARAMS((void)); |
| 305 | EXTERN char *tf_getworkarea PROTO_PARAMS((void)); |
| 306 | EXTERN int tf_iasynchoff PROTO_PARAMS((char *inst)); |
| 307 | EXTERN int tf_iasynchon PROTO_PARAMS((char *inst)); |
| 308 | EXTERN int tf_iclearalldelays PROTO_PARAMS((char *inst)); |
| 309 | EXTERN int tf_icopypvc_flag PROTO_PARAMS((int nparam, char *inst)); |
| 310 | EXTERN int tf_ievaluatep PROTO_PARAMS((int pnum, char *inst)); |
| 311 | EXTERN p_tfexprinfo tf_iexprinfo PROTO_PARAMS((int pnum, p_tfexprinfo pinfo, char *inst)); |
| 312 | EXTERN char *tf_igetcstringp PROTO_PARAMS((int nparam, char *inst)); |
| 313 | EXTERN int tf_igetlongp PROTO_PARAMS((int *aof_highvalue, int pnum, char *inst)); |
| 314 | EXTERN int tf_igetlongtime PROTO_PARAMS((int *aof_hightime, char *inst)); |
| 315 | EXTERN LP64BIT tf_igetp PROTO_PARAMS((int pnum, char *inst)); |
| 316 | EXTERN int tf_igetpchange PROTO_PARAMS((int nparam, char *inst)); |
| 317 | EXTERN double tf_igetrealp PROTO_PARAMS((int pnum, char *inst)); |
| 318 | EXTERN double tf_igetrealtime PROTO_PARAMS((char *inst)); |
| 319 | EXTERN int tf_igettime PROTO_PARAMS((char *inst)); |
| 320 | EXTERN int tf_igettimeprecision PROTO_PARAMS((char *inst)); |
| 321 | EXTERN int tf_igettimeunit PROTO_PARAMS((char *inst)); |
| 322 | EXTERN char *tf_igetworkarea PROTO_PARAMS((char *inst)); |
| 323 | EXTERN char *tf_imipname PROTO_PARAMS((char *cell)); |
| 324 | EXTERN int tf_imovepvc_flag PROTO_PARAMS((int nparam, char *inst)); |
| 325 | EXTERN p_tfnodeinfo tf_inodeinfo PROTO_PARAMS((int pnum, p_tfnodeinfo pinfo, char *inst)); |
| 326 | EXTERN int tf_inump PROTO_PARAMS((char *inst)); |
| 327 | EXTERN int tf_ipropagatep PROTO_PARAMS((int pnum, char *inst)); |
| 328 | EXTERN int tf_iputlongp PROTO_PARAMS((int pnum, int lowvalue, int highvalue, char *inst)); |
| 329 | EXTERN int tf_iputp PROTO_PARAMS((int pnum, int value, char *inst)); |
| 330 | EXTERN int tf_iputrealp PROTO_PARAMS((int pnum, double value, char *inst)); |
| 331 | EXTERN int tf_irosynchronize PROTO_PARAMS((char *inst)); |
| 332 | EXTERN int tf_isetdelay PROTO_PARAMS((int delay, char *inst)); |
| 333 | EXTERN int tf_isetlongdelay PROTO_PARAMS((int lowdelay, int highdelay, char *inst)); |
| 334 | EXTERN int tf_isetrealdelay PROTO_PARAMS((double realdelay, char *inst)); |
| 335 | EXTERN int tf_isetworkarea PROTO_PARAMS((char *workarea, char *inst)); |
| 336 | EXTERN int tf_isizep PROTO_PARAMS((int pnum, char *inst)); |
| 337 | EXTERN char *tf_ispname PROTO_PARAMS((char *cell)); |
| 338 | EXTERN int tf_istrdelputp PROTO_PARAMS((int nparam, int bitlength, int format_char, char *value_p, int delay, int delaytype, char *inst)); |
| 339 | EXTERN char *tf_istrgetp PROTO_PARAMS((int pnum, int format_char, char *inst)); |
| 340 | EXTERN int tf_istrlongdelputp PROTO_PARAMS((int nparam, int bitlength, int format_char, char *value_p, int lowdelay, int highdelay, int delaytype, char *inst)); |
| 341 | EXTERN int tf_istrrealdelputp PROTO_PARAMS((int nparam, int bitlength, int format_char, char *value_p, double realdelay, int delaytype, char *inst)); |
| 342 | EXTERN int tf_isynchronize PROTO_PARAMS((char *inst)); |
| 343 | EXTERN int tf_itestpvc_flag PROTO_PARAMS((int nparam, char *inst)); |
| 344 | EXTERN int tf_itypep PROTO_PARAMS((int pnum, char *inst)); |
| 345 | EXTERN void tf_long_to_real PROTO_PARAMS((int int_lo, int int_hi, double *aof_real)); |
| 346 | EXTERN char *tf_longtime_tostr PROTO_PARAMS((int lowtime, int hightime)); |
| 347 | EXTERN int tf_message PROTO_PARAMS((int level, char *facility, char *messno, char *message, ...)); |
| 348 | EXTERN char *tf_mipname PROTO_PARAMS((void)); |
| 349 | EXTERN int tf_movepvc_flag PROTO_PARAMS((int nparam)); |
| 350 | EXTERN void tf_multiply_long PROTO_PARAMS((int *aof_low1, int *aof_high1, int low2, int high2)); |
| 351 | EXTERN p_tfnodeinfo tf_nodeinfo PROTO_PARAMS((int pnum, p_tfnodeinfo pinfo)); |
| 352 | EXTERN int tf_nump PROTO_PARAMS((void)); |
| 353 | EXTERN int tf_propagatep PROTO_PARAMS((int pnum)); |
| 354 | EXTERN int tf_putlongp PROTO_PARAMS((int pnum, int lowvalue, int highvalue)); |
| 355 | EXTERN int tf_putp PROTO_PARAMS((int pnum, int value)); |
| 356 | EXTERN int tf_putrealp PROTO_PARAMS((int pnum, double value)); |
| 357 | EXTERN int tf_read_restart PROTO_PARAMS((char *blockptr, int blocklen)); |
| 358 | EXTERN void tf_real_to_long PROTO_PARAMS((double real, int *aof_int_lo, int *aof_int_hi)); |
| 359 | EXTERN int tf_rosynchronize PROTO_PARAMS((void)); |
| 360 | EXTERN void tf_scale_longdelay PROTO_PARAMS((char *cell, int delay_lo, int delay_hi, int *aof_delay_lo, int *aof_delay_hi)); |
| 361 | EXTERN void tf_scale_realdelay PROTO_PARAMS((char *cell, double realdelay, double *aof_realdelay)); |
| 362 | EXTERN int tf_setdelay PROTO_PARAMS((int delay)); |
| 363 | EXTERN int tf_setlongdelay PROTO_PARAMS((int lowdelay, int highdelay)); |
| 364 | EXTERN int tf_setrealdelay PROTO_PARAMS((double realdelay)); |
| 365 | EXTERN int tf_setworkarea PROTO_PARAMS((char *workarea)); |
| 366 | EXTERN int tf_sizep PROTO_PARAMS((int pnum)); |
| 367 | EXTERN char *tf_spname PROTO_PARAMS((void)); |
| 368 | EXTERN int tf_strdelputp PROTO_PARAMS((int nparam, int bitlength, int format_char, char *value_p, int delay, int delaytype)); |
| 369 | EXTERN char *tf_strgetp PROTO_PARAMS((int pnum, int format_char)); |
| 370 | EXTERN char *tf_strgetscaledtime PROTO_PARAMS((void)); |
| 371 | EXTERN char *tf_strgettime PROTO_PARAMS((void)); |
| 372 | EXTERN int tf_strlongdelputp PROTO_PARAMS((int nparam, int bitlength, int format_char, char *value_p, int lowdelay, int highdelay, int delaytype)); |
| 373 | EXTERN int tf_strrealdelputp PROTO_PARAMS((int nparam, int bitlength, int format_char, char *value_p, double realdelay, int delaytype)); |
| 374 | EXTERN int tf_subtract_long PROTO_PARAMS((int *aof_lowtime1, int *aof_hightime1, int lowtime2, int hightime2)); |
| 375 | EXTERN int tf_synchronize PROTO_PARAMS((void)); |
| 376 | EXTERN int tf_testpvc_flag PROTO_PARAMS((int nparam)); |
| 377 | EXTERN int tf_text PROTO_PARAMS((char *fmt, ...)); |
| 378 | EXTERN int tf_typep PROTO_PARAMS((int pnum)); |
| 379 | EXTERN void tf_unscale_longdelay PROTO_PARAMS((char *cell, int delay_lo, int delay_hi, int *aof_delay_lo, int *aof_delay_hi)); |
| 380 | EXTERN void tf_unscale_realdelay PROTO_PARAMS((char *cell, double realdelay, double *aof_realdelay)); |
| 381 | EXTERN int tf_warning PROTO_PARAMS((char *fmt, ...)); |
| 382 | EXTERN int tf_write_save PROTO_PARAMS((char *blockptr, int blocklen)); |
| 383 | EXTERN char *tf_getroutine PROTO_PARAMS((void)); |
| 384 | EXTERN char *tf_igetroutine PROTO_PARAMS((char *inst)); |
| 385 | |
| 386 | /* routines added for MDA support */ |
| 387 | EXTERN p_tfmdanodeinfo tf_mdanodeinfo PROTO_PARAMS((int pnum, p_tfmdanodeinfo pinfo)); |
| 388 | EXTERN p_tfmdanodeinfo tf_imdanodeinfo PROTO_PARAMS((int pnum, p_tfmdanodeinfo pinfo, char *inst)); |
| 389 | |
| 390 | |
| 391 | #ifdef DEFINED_PROTO_PARAMS |
| 392 | # undef DEFINED_PROTO_PARAMS |
| 393 | # undef PROTO_PARAMS |
| 394 | #endif |
| 395 | |
| 396 | #ifdef DEFINED_EXTERN |
| 397 | # undef DEFINED_EXTERN |
| 398 | # undef EXTERN |
| 399 | #endif |
| 400 | |
| 401 | #if defined(__cplusplus) |
| 402 | } /* extern "C" */ |
| 403 | #endif |
| 404 | |
| 405 | #endif /* VERIUSER_H */ |