Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
cifdata.c
Go to the documentation of this file.
00001 /*
00002 
00003   Copyright (C) 2000, 2001 Silicon Graphics, Inc.  All Rights Reserved.
00004 
00005   This program is free software; you can redistribute it and/or modify it
00006   under the terms of version 2.1 of the GNU Lesser General Public License 
00007   as published by the Free Software Foundation.
00008 
00009   This program is distributed in the hope that it would be useful, but
00010   WITHOUT ANY WARRANTY; without even the implied warranty of
00011   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
00012 
00013   Further, this software is distributed without any warranty that it is
00014   free of the rightful claim of any third person regarding infringement 
00015   or the like.  Any license provided herein, whether implied or 
00016   otherwise, applies only to this software file.  Patent licenses, if
00017   any, provided herein do not apply to combinations of this program with 
00018   other software, or any other product whatsoever.  
00019 
00020   You should have received a copy of the GNU Lesser General Public 
00021   License along with this program; if not, write the Free Software 
00022   Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307, 
00023   USA.
00024 
00025   Contact information:  Silicon Graphics, Inc., 1600 Amphitheatre Pky,
00026   Mountain View, CA 94043, or:
00027 
00028   http://www.sgi.com
00029 
00030   For further information regarding this notice, see:
00031 
00032   http://oss.sgi.com/projects/GenInfo/NoticeExplan
00033 
00034 */
00035 
00036 
00037 static char USMID[] = "@(#) libcif/cifdata.c    30.8    07/26/96 07:19:13";
00038 
00039 
00040 /* --------------------------------------------------------------------------
00041  * cifdata contains initialization of CIF internal global data.
00042  * --------------------------------------------------------------------------
00043  */
00044 
00045 #define CIF_VERSION 3
00046 
00047 #ifdef _ABSOFT
00048 #include "cif.h"
00049 #else
00050 #include <cif.h>
00051 #endif
00052 
00053 #include <stdio.h>
00054 #include <stdlib.h>
00055 
00056 #include "cif_int.h"
00057 
00058 /* --- size of each record structure --- */
00059 const short _Cif_structsize[CIF_MAXRECORD][_CIF_INT_VERSION + 1] = {
00060                                                 /* + 1 allows us to index by cif_version
00061                                                    which starts at 1 */
00062 
00063   /*    Version 1                       Version 2                       Version 3*/
00064 
00065 0,      0,                              0,                              0,                                      /* 00 */
00066 0,      sizeof(struct Cif_callsite),    sizeof(struct Cif_callsite),    sizeof(struct Cif_callsite),            /* 01= CIF_CALLSITE */
00067 0,      sizeof(struct Cif_cifhdr),      sizeof(struct Cif_cifhdr),      sizeof(struct Cif_cifhdr),              /* 02= CIF_CIFHDR */
00068 0,      sizeof(struct Cif_comblk_1),    sizeof(struct Cif_comblk),      sizeof(struct Cif_comblk),              /* 03= CIF_COMBLK */
00069 0,      sizeof(struct Cif_const),       sizeof(struct Cif_const),       sizeof(struct Cif_const),               /* 04= CIF_CONST */
00070 0,      0,                              sizeof(struct Cif_cdir),        sizeof(struct Cif_cdir),                /* 05= CIF_CDIR */
00071 0,      sizeof(struct Cif_entry),       sizeof(struct Cif_entry),       sizeof(struct Cif_entry),               /* 06= CIF_ENTRY */
00072 0,      sizeof(struct Cif_file_1),      sizeof(struct Cif_file_1),      sizeof(struct Cif_file),                /* 07= CIF_FILE */
00073 0,      sizeof(struct Cif_loop),        sizeof(struct Cif_loop),        sizeof(struct Cif_loop),                /* 08= CIF_LOOP */
00074 0,      sizeof(struct Cif_include),     sizeof(struct Cif_include),     sizeof(struct Cif_include),             /* 09= CIF_INCLUDE */
00075 0,      sizeof(struct Cif_label),       sizeof(struct Cif_label),       sizeof(struct Cif_label),               /* 10= CIF_LABEL */
00076 0,      sizeof(struct Cif_message_1),   sizeof(struct Cif_message_1),   sizeof(struct Cif_message),             /* 11= CIF_MESSAGE */
00077 0,      sizeof(struct Cif_namelist),    sizeof(struct Cif_namelist),    sizeof(struct Cif_namelist),            /* 12= CIF_NAMELIST */
00078 0,      sizeof(struct Cif_object_1),    sizeof(struct Cif_object),      sizeof(struct Cif_object),              /* 13= CIF_OBJECT */
00079 0,      sizeof(struct Cif_srcfile),     sizeof(struct Cif_srcfile),     sizeof(struct Cif_srcfile),             /* 14= CIF_SRCFILE */
00080 0,      sizeof(struct Cif_summary),     sizeof(struct Cif_summary),     sizeof(struct Cif_summary),             /* 15= CIF_SUMMARY */
00081 0,      0,                              sizeof(struct Cif_cdir_doshared),sizeof(struct Cif_cdir_doshared),     /* 16= CIF_CDIR_DOSHARED */
00082 0,      sizeof(struct Cif_unit),        sizeof(struct Cif_unit),        sizeof(struct Cif_unit),                /* 17= CIF_UNIT */
00083 0,      sizeof(struct Cif_endunit),     sizeof(struct Cif_endunit),     sizeof(struct Cif_endunit),             /* 18= CIF_ENDUNIT */
00084 0,      sizeof(struct Cif_usage_1),     sizeof(struct Cif_usage),       sizeof(struct Cif_usage),               /* 19= CIF_USAGE */
00085 0,      sizeof(struct Cif_nd_msg),      sizeof(struct Cif_nd_msg),      sizeof(struct Cif_nd_msg),              /* 20= CIF_ND_MSG */
00086 0,      sizeof(struct Cif_edopts),      sizeof(struct Cif_edopts),      sizeof(struct Cif_edopts),              /* 21= CIF_EDOPTS */
00087 0,      sizeof(struct Cif_mach_char_1), sizeof(struct Cif_mach_char),   sizeof(struct Cif_mach_char),           /* 22= CIF_MACH_CHAR*/
00088 0,      sizeof(struct Cif_misc_opts_1), sizeof(struct Cif_misc_opts),   sizeof(struct Cif_misc_opts),           /* 23= CIF_MISC_OPTS*/
00089 0,      sizeof(struct Cif_opt_opts_1),  sizeof(struct Cif_opt_opts),    sizeof(struct Cif_opt_opts),            /* 24= CIF_OPT_OPTS */
00090 0,      sizeof(struct Cif_stmt_type),   sizeof(struct Cif_stmt_type),   sizeof(struct Cif_stmt_type),           /* 25= CIF_STMT_TYPE*/
00091 0,      0,                              sizeof(struct Cif_geometry),    sizeof(struct Cif_geometry),            /* 26= CIF_GEOMETRY */
00092 0,      0,                              sizeof(struct Cif_continuation),sizeof(struct Cif_continuation),        /* 27= CIF_CONTINUATION */
00093 0,      0,                              sizeof(struct Cif_f90_callsite), sizeof(struct Cif_f90_callsite),       /* 28= CIF_F90_CALLSITE */
00094 0,      0,                              sizeof(struct Cif_f90_comblk),  sizeof(struct Cif_f90_comblk),          /* 29= CIF_F90_COMBLK */
00095 0,      0,                              sizeof(struct Cif_f90_const),   sizeof(struct Cif_f90_const),           /* 30= CIF_F90_CONST */
00096 0,      0,                              sizeof(struct Cif_f90_entry),   sizeof(struct Cif_f90_entry),           /* 31= CIF_F90_ENTRY */
00097 0,      0,                              sizeof(struct Cif_f90_loop),    sizeof(struct Cif_f90_loop),            /* 32= CIF_F90_LOOP */
00098 0,      0,                              sizeof(struct Cif_f90_derived_type_2),sizeof(struct Cif_f90_derived_type), /* 33= CIF_F90_DERIVED_TYPE */
00099 0,      0,                              sizeof(struct Cif_f90_label),   sizeof(struct Cif_f90_label),           /* 34= CIF_F90_LABEL */
00100 0,      0,                              sizeof(struct Cif_f90_namelist),  sizeof(struct Cif_f90_namelist),      /* 35= CIF_F90_NAMELIST */
00101 0,      0,                              sizeof(struct Cif_f90_object),  sizeof(struct Cif_f90_object),          /* 36= CIF_F90_OBJECT */
00102 0,      0,                              sizeof(struct Cif_f90_misc_opts), sizeof(struct Cif_f90_misc_opts),    /* 37= CIF_F90_MISC_OPTS */
00103 0,      0,                              sizeof(struct Cif_f90_opt_opts),   sizeof(struct Cif_f90_opt_opts),     /* 38= CIF_F90_OPT_OPTS */
00104 0,      0,                              sizeof(struct Cif_f90_begin_scope), sizeof(struct Cif_f90_begin_scope), /* 39= CIF_F90_BEGIN_SCOPE */
00105 0,      0,                              sizeof(struct Cif_f90_end_scope), sizeof(struct Cif_f90_end_scope),     /* 40= CIF_F90_END_SCOPE */
00106 0,      0,                              sizeof(struct Cif_f90_scope_info), sizeof(struct Cif_f90_scope_info),   /* 41= CIF_F90_SCOPE_INFO */
00107 0,      0,                              sizeof(struct Cif_f90_use_module),      sizeof(struct Cif_f90_use_module), /* 42= CIF_F90_USE_MODULE */
00108 0,      0,                              sizeof(struct Cif_f90_rename),  sizeof(struct Cif_f90_rename),          /* 43= CIF_F90_RENAME */
00109 0,      0,                              sizeof(struct Cif_f90_int_block_2),   sizeof(struct Cif_f90_int_block), /* 44= CIF_F90_INT_BLOCK */
00110 0,      0,                              sizeof(struct Cif_f90_vectorization),   sizeof(struct Cif_f90_vectorization),   /* 45= CIF_F90_VECTORIZATION */
00111 0,      0,                              sizeof(struct Cif_BE_node_2),   sizeof(struct Cif_BE_node),             /* 46= CIF_BE_NODE */
00112 0,      0,                              0,                              0,                                      /* 47 */
00113 0,      sizeof(struct Cif_filedir),     sizeof(struct Cif_filedir),     sizeof(struct Cif_filedir),             /* 48= CIF_FILEDIR */
00114 0,      sizeof(struct Cif_unitdir),     sizeof(struct Cif_unitdir),     sizeof(struct Cif_unitdir),             /* 49= CIF_UNITDIR */
00115 0,      0,                              sizeof(struct Cif_BE_fid),      sizeof(struct Cif_BE_fid),              /* 50= CIF_BE_FID */
00116 0,      sizeof(struct Cif_c_tag),       sizeof(struct Cif_c_tag),       sizeof(struct Cif_c_tag),               /* 51= CIF_C_TAG */
00117 0,      sizeof(struct Cif_c_opts),      sizeof(struct Cif_c_opts),      sizeof(struct Cif_c_opts),              /* 52= CIF_C_OPTS */
00118 0,      sizeof(struct Cif_c_message_1), sizeof(struct Cif_c_message),   sizeof(struct Cif_c_message),           /* 53= CIF_C_MESSAGE*/
00119 0,      sizeof(struct Cif_c_const),     sizeof(struct Cif_c_const),     sizeof(struct Cif_c_const),             /* 54= CIF_C_CONST */
00120 0,      sizeof(struct Cif_c_entry_1),   sizeof(struct Cif_c_entry),     sizeof(struct Cif_c_entry),             /* 55= CIF_C_ENTRY */
00121 0,      sizeof(struct Cif_c_object),    sizeof(struct Cif_c_object),    sizeof(struct Cif_c_object),            /* 56= CIF_C_OBJECT */
00122 0,      0,                 sizeof(struct Cif_c_lint_directive), sizeof(struct Cif_c_lint_directive),    /* 57= CIF_C_LINT_DIRECTIVE */
00123 0,      0,                 sizeof(struct Cif_c_macro_def),       sizeof(struct Cif_c_macro_def),        /* 58= CIF_C_MACRO_DEF */
00124 0,      0,                 sizeof(struct Cif_c_macro_undef),    sizeof(struct Cif_c_macro_undef),       /* 59= CIF_C_MACRO_UNDEF */
00125 0,      0,                 sizeof(struct Cif_c_macro_usage),    sizeof(struct Cif_c_macro_usage),       /* 60= CIF_C_MACRO_USAGE */
00126 0,      0,                 sizeof(struct Cif_c_entry_end),       sizeof(struct Cif_c_entry_end),                /* 61= CIF_C_ENTRY_END */
00127 0, 0, 0, 0,     /* 62 */
00128 0, 0, 0, 0,     /* 63 */
00129 0, 0, 0, 0,     /* 64 */
00130 0, 0, 0, 0,     /* 65 */
00131 0, 0, 0, 0,     /* 66 */
00132 0, 0, 0, 0,     /* 67 */
00133 0, 0, 0, 0,     /* 68 */
00134 0, 0, 0, 0,     /* 69 */
00135 0, 0, 0, sizeof(struct Cif_src_pos),    /* 70= CIF_ORIG_CMD */
00136 0, 0, 0, 0,     /* 71 */
00137 0, 0, 0, 0,     /* 72 */
00138 0, 0, 0, 0,     /* 73 */
00139 0, 0, 0, 0,     /* 74 */
00140 0, 0, 0, 0,     /* 75 */
00141 0, 0, 0, 0,     /* 76 */
00142 0, 0, 0, 0,     /* 77 */
00143 0, 0, 0, 0,     /* 78 */
00144 0, 0, 0, 0,     /* 79 */
00145 0,      0,      0,      sizeof(struct Cif_cc_type),     /* 80= CIF_CC_TYPE */
00146 0,      0,      0,      sizeof(struct Cif_cc_entry),    /* 81= CIF_CC_ENTRY */
00147 0,      0,      0,      sizeof(struct Cif_cc_obj),      /* 82= CIF_CC_OBJ */
00148 0,      0,      0,      sizeof(struct Cif_cc_subtype),  /* 83= CIF_CC_SUBTYPE */
00149 0,      0,      0,      sizeof(struct Cif_cc_enum),     /* 84= CIF_CC_ENUM */
00150 0,      0,      0,      sizeof(struct Cif_cc_expr),     /* 85= CIF_CC_EXPR */
00151 0,      0,      0,      sizeof(struct Cif_src_pos)      /* 86= CIF_SRC_POS */
00152 };
00153 
00154 /* --- size of each (possibly shortened) binary record structure --- */
00155 const short _Cif_shortsize[CIF_MAXRECORD][_CIF_INT_VERSION + 1] = {
00156                                                 /* + 1 allows us to index by cif_version
00157                                                    which starts at 1 */
00158 0,      0,                      0,                      0,              /* 00 */
00159 0,      CALLSITE_SSIZE,         CALLSITE_SSIZE,         CALLSITE_SSIZE,         /* 01= CIF_CALLSITE */
00160 0,      CIFHDR_SSIZE,           CIFHDR_SSIZE,           CIFHDR_SSIZE,           /* 02= CIF_CIFHDR */
00161 0,      COMBLK_SSIZE_1,         COMBLK_SSIZE,           COMBLK_SSIZE,           /* 03= CIF_COMBLK */
00162 0,      CONST_SSIZE,            CONST_SSIZE,            CONST_SSIZE,            /* 04= CIF_CONST */
00163 0,      0,                      CDIR_SSIZE,             CDIR_SSIZE,             /* 05= CIF_CDIR */
00164 0,      ENTRY_SSIZE,            ENTRY_SSIZE,            ENTRY_SSIZE,            /* 06= CIF_ENTRY */
00165 0,      FILE_SSIZE_1,           FILE_SSIZE_1,           FILE_SSIZE,             /* 07= CIF_FILE */
00166 0,      LOOP_SSIZE,             LOOP_SSIZE,             LOOP_SSIZE,             /* 08= CIF_LOOP */
00167 0,      INCLUDE_SSIZE,          INCLUDE_SSIZE,          INCLUDE_SSIZE,          /* 09= CIF_INCLUDE */
00168 0,      LABEL_SSIZE,            LABEL_SSIZE,            LABEL_SSIZE,            /* 10= CIF_LABEL */
00169 0,      MESSAGE_SSIZE_1,        MESSAGE_SSIZE_1,        MESSAGE_SSIZE,          /* 11= CIF_MESSAGE */
00170 0,      NAMELIST_SSIZE,         NAMELIST_SSIZE,         NAMELIST_SSIZE,         /* 12= CIF_NAMELIST */
00171 0,      OBJECT_SSIZE_1,         OBJECT_SSIZE,           OBJECT_SSIZE,           /* 13= CIF_OBJECT */
00172 0,      SRCFILE_SSIZE,          SRCFILE_SSIZE,          SRCFILE_SSIZE,          /* 14= CIF_SRCFILE */
00173 0,      SUMMARY_SSIZE,          SUMMARY_SSIZE,          SUMMARY_SSIZE,          /* 15= CIF_SUMMARY */
00174 0,      0,                      CDIR_DOSHARED_SSIZE,    CDIR_DOSHARED_SSIZE,    /* 16= CIF_CDIR_DOSHARED */
00175 0,      UNIT_SSIZE,             UNIT_SSIZE,             UNIT_SSIZE,             /* 17= CIF_UNIT */
00176 0,      ENDUNIT_SSIZE,          ENDUNIT_SSIZE,          ENDUNIT_SSIZE,          /* 18= CIF_ENDUNIT */
00177 0,      USAGE_SSIZE_1,          USAGE_SSIZE,            USAGE_SSIZE,            /* 19= CIF_USAGE */
00178 0,      ND_MSG_SSIZE,           ND_MSG_SSIZE,           ND_MSG_SSIZE,           /* 20= CIF_ND_MSG */
00179 0,      EDOPTS_SSIZE,           EDOPTS_SSIZE,           EDOPTS_SSIZE,           /* 21= CIF_EDOPTS */
00180 0,      MACH_CHAR_SSIZE_1,      MACH_CHAR_SSIZE,        MACH_CHAR_SSIZE,        /* 22= CIF_MACH_CHAR */
00181 0,      MISC_OPTS_SSIZE_1,      MISC_OPTS_SSIZE,        MISC_OPTS_SSIZE,        /* 23= CIF_MISC_OPTS */
00182 0,      OPT_OPTS_SSIZE_1,       OPT_OPTS_SSIZE,         OPT_OPTS_SSIZE,         /* 24= CIF_OPT_OPTS */
00183 0,      STMT_TYPE_SSIZE,        STMT_TYPE_SSIZE,        STMT_TYPE_SSIZE,        /* 25= CIF_STMT_TYPE */
00184 0,      0,                      GEOMETRY_SSIZE,         GEOMETRY_SSIZE,         /* 26= CIF_GEOMETRY */
00185 0,      0,                      CONTINUATION_SSIZE,     CONTINUATION_SSIZE,     /* 27= CIF_CONTINUATION */
00186 0,      0,                      F90_CALLSITE_SSIZE,     F90_CALLSITE_SSIZE,     /* 28= CIF_F90_CALLSITE */
00187 0,      0,                      F90_COMBLK_SSIZE,       F90_COMBLK_SSIZE,       /* 29= CIF_F90_COMBLK */
00188 0,      0,                      F90_CONST_SSIZE,        F90_CONST_SSIZE,        /* 30= CIF_F90_CONST */
00189 0,      0,                      F90_ENTRY_SSIZE,        F90_ENTRY_SSIZE,        /* 31= CIF_F90_ENTRY */
00190 0,      0,                      F90_LOOP_SSIZE,         F90_LOOP_SSIZE,         /* 32= CIF_F90_LOOP */
00191 0,      0,                      F90_DERIVED_TYPE_SSIZE_2,       F90_DERIVED_TYPE_SSIZE, /* 33= CIF_F90_DERIVED_TYPE */
00192 0,      0,                      F90_LABEL_SSIZE,        F90_LABEL_SSIZE,       /* 34= CIF_F90_LABEL */
00193 0,      0,                      F90_NAMELIST_SSIZE,     F90_NAMELIST_SSIZE,     /* 35= CIF_F90_NAMELIST */
00194 0,      0,                      F90_OBJECT_SSIZE,       F90_OBJECT_SSIZE,       /* 36= CIF_F90_OBJECT */
00195 0,      0,                      F90_MISC_OPTS_SSIZE,    F90_MISC_OPTS_SSIZE,    /* 37= CIF_F90_MISC_OPTS */
00196 0,      0,                      F90_OPT_OPTS_SSIZE,     F90_OPT_OPTS_SSIZE,     /* 38= CIF_F90_OPT_OPTS */
00197 0,      0,                      F90_BEGIN_SCOPE_SSIZE,  F90_BEGIN_SCOPE_SSIZE,  /* 39= CIF_F90_BEGIN_SCOPE */
00198 0,      0,                      F90_END_SCOPE_SSIZE,    F90_END_SCOPE_SSIZE,    /* 40= CIF_F90_END_SCOPE */
00199 0,      0,                      F90_SCOPE_INFO_SSIZE,   F90_SCOPE_INFO_SSIZE,   /* 41= CIF_F90_SCOPE_INFO */
00200 0,      0,                      F90_USE_MODULE_SSIZE,   F90_USE_MODULE_SSIZE,   /* 42= CIF_F90_USE_MODULE */
00201 0,      0,                      F90_RENAME_SSIZE,       F90_RENAME_SSIZE,       /* 43= CIF_F90_RENAME */
00202 0,      0,                      F90_INT_BLOCK_SSIZE_2,  F90_INT_BLOCK_SSIZE,    /* 44= CIF_F90_INT_BLOCK */
00203 0,      0,                      F90_VECTORIZATION_SSIZE,F90_VECTORIZATION_SSIZE,/* 45= CIF_F90_VECTORIZATION */
00204 0,      0,                      BENODE_SSIZE_2,         BENODE_SSIZE,           /* 46= CIF_BE_NODE */
00205 0,      0,                      0,                      0,                      /* 47 */
00206 0,      FILEDIR_SSIZE,          FILEDIR_SSIZE,          FILEDIR_SSIZE,          /* 48= CIF_FILEDIR */
00207 0,      UNITDIR_SSIZE,          UNITDIR_SSIZE,          UNITDIR_SSIZE,          /* 49= CIF_UNITDIR */
00208 0,      0,                      BEFID_SSIZE,            BEFID_SSIZE,            /* 50= CIF_BE_FID */
00209 0,      CTAG_SSIZE,             CTAG_SSIZE,             CTAG_SSIZE,             /* 51= CIF_C_TAG */
00210 0,      COPTS_SSIZE,            COPTS_SSIZE,            COPTS_SSIZE,            /* 52= CIF_C_OPTS */
00211 0,      CMESSAGE_SSIZE_1,       CMESSAGE_SSIZE,         CMESSAGE_SSIZE,         /* 53= CIF_C_MESSAGE */
00212 0,      CCONST_SSIZE,           CCONST_SSIZE,           CCONST_SSIZE,           /* 54= CIF_C_CONST */
00213 0,      CENTRY_SSIZE_1,         CENTRY_SSIZE_2,         CENTRY_SSIZE,           /* 55= CIF_C_ENTRY */
00214 0,      COBJECT_SSIZE,          COBJECT_SSIZE,          COBJECT_SSIZE,          /* 56= CIF_C_OBJECT */
00215 0,      0,                      CLINT_DIRECTIVE_SSIZE,  CLINT_DIRECTIVE_SSIZE,  /* 57= CIF_C_LINT_DIRECTIVE */
00216 0,      0,                      CMACRO_DEF_SSIZE,       CMACRO_DEF_SSIZE,       /* 58= CIF_C_MACRO_DEF */
00217 0,      0,                      CMACRO_UNDEF_SSIZE,     CMACRO_UNDEF_SSIZE,     /* 59= CIF_C_MACRO_UNDEF */
00218 0,      0,                      CMACRO_USAGE_SSIZE,     CMACRO_USAGE_SSIZE,     /* 60= CIF_C_MACRO_USAGE */
00219 0,      0,                      CENTRY_END_SSIZE,       CENTRY_END_SSIZE,       /* 61= CIF_C_ENTRY_END */
00220 0, 0, 0, 0,     /* 62 */
00221 0, 0, 0, 0,     /* 63 */
00222 0, 0, 0, 0,     /* 64 */
00223 0, 0, 0, 0,     /* 65 */
00224 0, 0, 0, 0,     /* 66 */
00225 0, 0, 0, 0,     /* 67 */
00226 0, 0, 0, 0,     /* 68 */
00227 0, 0, 0, 0,     /* 69 */
00228 0, 0, 0, ORIG_CMD_SSIZE,        /* 70= CIF_ORIG_CMD */
00229 0, 0, 0, 0,     /* 71 */
00230 0, 0, 0, 0,     /* 72 */
00231 0, 0, 0, 0,     /* 73 */
00232 0, 0, 0, 0,     /* 74 */
00233 0, 0, 0, 0,     /* 75 */
00234 0, 0, 0, 0,     /* 76 */
00235 0, 0, 0, 0,     /* 77 */
00236 0, 0, 0, 0,     /* 78 */
00237 0, 0, 0, 0,     /* 79 */
00238 0,      0,      0,      CCTYPE_SSIZE,   /* 80= CIF_CC_TYPE */
00239 0,      0,      0,      CCENTRY_SSIZE,  /* 81= CIF_CC_ENTRY */
00240 0,      0,      0,      CCOBJ_SSIZE,    /* 82= CIF_CC_OBJ */
00241 0,      0,      0,      CCSUBTYPE_SSIZE, /* 83= CIF_CC_SUBTYPE */
00242 0,      0,      0,      CCENUM_SSIZE,   /* 84= CIF_CC_ENUM */
00243 0,      0,      0,      CCEXPR_SSIZE,   /* 85= CIF_CC_EXPR */
00244 0,      0,      0,      SRC_POS_SSIZE   /* 86= CIF_SRC_POS */
00245 };
00246 
00247 /*
00248  * Mapping between compiler generated object data type values and
00249  * those that the library wants to return. ie a set that is consistent with
00250  * f77 as far as possible and non-overlapping when not.
00251  *
00252  * This remapping is done for CIF Version 2.  However, this is not required
00253  * for CIF Version 3 because the newer cf90 2.0 compiler generates the
00254  * correct values from the start.
00255  *
00256  * NOTE: the following names are deprecated (per lrr) and no longer used:
00257  *   CIF_F90_DT_SHORT_CHAR_CONST
00258  *   CIF_F90_DT_SHORT_TYPELESS
00259  *   CIF_F90_DT_LONG_TYPELESS
00260  */
00261 const int _Cif_f90_to_f77_dtypes[] = {
00262     CIF_F90_DT_UNKNOWN,
00263     CIF_F90_DT_CHARACTER_1,
00264     CIF_F90_DT_TYPELESS,
00265     CIF_F90_DT_TYPELESS,
00266     CIF_F90_DT_INTEGER_1,
00267     CIF_F90_DT_INTEGER_2,
00268     CIF_F90_DT_INTEGER_4,
00269     CIF_F90_DT_INTEGER_6,
00270     CIF_F90_DT_INTEGER_8,
00271     CIF_F90_DT_REAL_4,
00272     CIF_F90_DT_REAL_8,
00273     CIF_F90_DT_REAL_16,
00274     CIF_F90_DT_COMPLEX_4,
00275     CIF_F90_DT_COMPLEX_8,
00276     CIF_F90_DT_COMPLEX_16,
00277     CIF_F90_DT_FPTR,
00278     CIF_F90_DT_LOGICAL_1,
00279     CIF_F90_DT_LOGICAL_2,
00280     CIF_F90_DT_LOGICAL_4,
00281     CIF_F90_DT_LOGICAL_8,
00282     CIF_F90_DT_CHARACTER_1,
00283     CIF_F90_DT_CHARACTER_2,
00284     CIF_F90_DT_CHARACTER_4,
00285     CIF_F90_DT_FCPTR
00286 };
00287 
00288 
00289 /* --------------------------------------------------------------------------
00290  * _Cif_space is an array of pointers to memory management functions.  The
00291  * appropriate function is called based on memory management mode for the
00292  * CIF in question.
00293  *
00294  * The fancy declarations are need to cast away the function prototypes since
00295  * the different functions have different number of parameters.
00296  * --------------------------------------------------------------------------
00297  */
00298 
00299 extern char * _Cif_fixed_space __((unsigned int, int));
00300 extern char * _Cif_managed_space __((unsigned int, int));
00301 char * (*_Cif_space[])() = {
00302         (char *(*)())0,
00303         (char *(*)())malloc,
00304         (char *(*)())_Cif_fixed_space,
00305         (char *(*)())_Cif_managed_space
00306 };
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines