Open64 (mfef90, whirl2f, and IR tools)  TAG: version-openad; SVN changeset: 916
fdcconfig.h
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 of the GNU General Public License as
00007   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 General Public License along
00021   with this program; if not, write the Free Software Foundation, Inc., 59
00022   Temple Place - Suite 330, Boston MA 02111-1307, USA.
00023 
00024   Contact information:  Silicon Graphics, Inc., 1600 Amphitheatre Pky,
00025   Mountain View, CA 94043, or:
00026 
00027   http://www.sgi.com
00028 
00029   For further information regarding this notice, see:
00030 
00031   http://oss.sgi.com/projects/GenInfo/NoticeExplan
00032 
00033 */
00034 
00035 /* USMID @(#) clibinc/fdcconfig.h       92.6    11/16/99 11:55:31 */
00036 
00037 
00038 #ifndef _FDCCONFIG_H
00039 #define _FDCCONFIG_H
00040 
00041 /*
00042  **************************************************************************
00043  *
00044  *                      S W I T C H E S
00045  *      Each of these defines enables or disables one feature of the
00046  *      data conversion complex.  The first few ending in '_LYR'
00047  *      enable the layer/class indicated.  For example, ENABLE_IBM_LYR
00048  *      controls access to the IBM blocking routines.  (-F ibm.xxx on
00049  *      the assign command)  If the YES on
00050  *      on this #define is changed to NO, then the references to the
00051  *      IBM blocking routines will be made 'soft'.   The result of this is
00052  *      that the routines will still be in the library, but will not be
00053  *      loaded unless specifically requested.  The command(s) that
00054  *      allow implicit (asgcmd(1) and assign(1))
00055  *      assignment of IBM blocking will put out a warning if this change
00056  *      is made, if the user ignores the warning, and tries to perform
00057  *      implicit IBM blocking, an error will result.  Similarly for the
00058  *      numeric/data conversion facilities (-C and -N options on assign)
00059  *      the ENABLE_IBM_DAT #define controls loading of these routines.
00060  *
00061  *      The primary reason to turn these facilities off would be to reduce
00062  *      the size of user programs.  Fortran loads all of the layers
00063  *      and numeric conversion routines that are enabled here.
00064  *
00065  *      If switched off here, the user can still explicitly force
00066  *      the loading of the disabled routines, but currently he
00067  *      needs the names of the disabled routines to do this.
00068  *      The numeric conversion routines are much larger than the
00069  *      blocking routines, therefore they are likely candidates to
00070  *      remove first.
00071  *
00072  *      Note that COS, BMX, and other 'non-foreign' layers are also
00073  *      switchable.  However, COS is currently the default blocking type
00074  *      for unformatted Fortran files on CX/CEA systems, so it is not
00075  *      recommended that it be disabled.  The switches are, however
00076  *      honored by the FDC routines.
00077  *
00078  *      Note also that in libc/fdcio/fxrmisc.c a mask is built of these
00079  *      switches for run-time checking.
00080  *
00081  **************************************************************************
00082  */
00083 
00084 #ifndef YES
00085 #define YES             1
00086 #endif
00087 #ifndef NO
00088 #define NO              0
00089 #endif
00090 
00091 #ifdef  _CRAY1
00092 #  define _C1   1               /* CRAY PVP systems */
00093 #  ifdef  _CRAYIEEE
00094 #    define _CR 0
00095 #  else
00096 #    define _CR 1               /* CRAY PVP systems with Cray floating point */
00097 #  endif
00098 #else
00099 #  define _C1   0
00100 #endif 
00101 
00102 #ifdef  _CRAYMPP
00103 #  define _CM   1               /* CRAY T3D/T3E MPP systems */
00104 #else
00105 #  define _CM   0
00106 #endif 
00107 
00108 #ifdef _CRAYT3E
00109 #  define _CE   1               /* CRAY T3E systems */
00110 #else
00111 #  define _CE   0
00112 #endif
00113 
00114 #if defined(_CRAYT3D) && !defined(_UNICOS_MAX)
00115 #  define _CH   1               /* CRAY T3D self-hosted systems */
00116 #else
00117 #  define _CH   0               
00118 #endif
00119 
00120 #if defined(_CRAYT3D) && defined(_UNICOS_MAX)
00121 #  define _CD   1               /* CRAY T3D Unicos/MAX systems */
00122 #else
00123 #  define _CD   0               
00124 #endif
00125 
00126 #ifdef  _SOLARIS
00127 #  define _S4   1               /* Solaris with 4 byte words */
00128 #else
00129 #  define _S4   0
00130 #endif 
00131 
00132 #ifdef __mips
00133 #  define _IR   1               /* Irix systems */
00134 #else
00135 #  define _IR   0
00136 #endif
00137 
00138 #if defined(_LITTLE_ENDIAN)
00139 #  define _IA   1               /* Little Endian systems */
00140 #else
00141 #  define _IA   0
00142 #endif
00143 
00144 /*
00145  *      Enable/disable FFIO layers (-F option on assign).
00146  */
00147 
00148 #define ENABLE_TEXT_LYR         (_C1 || _CM || _IR)     /* text */
00149 #define ENABLE_COS_LYR          (_C1 || _CM || _IR)     /* cos */
00150 #define ENABLE_BMX_LYR          (_C1 || _CH || _CE)     /* tape */
00151 #define ENABLE_IBM_LYR          (_C1 || _IR)            /* ibm */
00152 #define ENABLE_VMS_LYR          (_C1 || _IR)            /* vms */
00153 #define ENABLE_CDC_LYR          ( NO)                   /* cdc */
00154 #define ENABLE_NVE_LYR          ( NO)                   /* nosve */
00155 #define ENABLE_UX_LYR           (_C1 || _CM )           /* X class */
00156 #define ENABLE_SDS_LYR          (_C1 || _CD)            /* sds */
00157 #define ENABLE_MR_LYR           (_C1 || _CM)            /* mr */
00158 #define ENABLE_TRC_LYR          ( NO)                   /* trace */
00159 #define ENABLE_BLX_LYR          (_C1 || _CM)            /* blx */
00160 #define ENABLE_FD_LYR           (_C1 || _CM || _IR)     /* fd */
00161 #define ENABLE_205_LYR          ( NO)                   /* c205 */
00162 #define ENABLE_CACHE_LYR        (_C1 || _CM || _IR || _IA) /* cache */
00163 /* USER record layer is always disabled/soft */
00164 #define ENABLE_SITE_LYR         ( NO)                   /* site */
00165 #define ENABLE_ER90B_LYR        ( NO)                   /* er90 */
00166 #define ENABLE_BUFA_LYR         (_C1 || _CM || _IR)     /* bufa */
00167 #define ENABLE_CACHEA_LYR       (_C1 || _CM || _IR)     /* cachea */
00168 #define ENABLE_EVENT_LYR        (_C1 || _CE || _IR)     /* event */
00169 #define ENABLE_LOCK_LYR         (_C1 || _IR)            /* lock */
00170 #define ENABLE_GLOBAL_LYR       (       _CM || _IR)     /* global */
00171 #define ENABLE_F77_LYR          (_C1 || _CM || _S4 || _IR || _IA) /* f77 class */
00172 #define ENABLE_TMF_LYR          (_IR)                   /* tmf */
00173 #define ENABLE_CMP_LYR          (_C1 || _CE)            /* compression */
00174 
00175 /*
00176  *      Enable/disable implicit data conversion types (-N option on assign).
00177  */
00178 
00179 #define ENABLE_CRY_DAT          (_C1 || _CM || _IR)     /* cray y-mp */
00180 #define ENABLE_MIPS_DAT         (_C1 || _IR || _IA)     /* mips */
00181 #define ENABLE_IBM_DAT          (_C1 || _IR)            /* ibm */
00182 #define ENABLE_VMS_DAT          (_CR || _IR)            /* vms */
00183 #define ENABLE_IEG_DAT          (_C1 || _CM || _IR)     /* ieee_32 */
00184 #define ENABLE_IEL_DAT          (_C1 || _IR)            /* ieee_64 */
00185 #define ENABLE_IEU_DAT          (_CR || _IR)            /* ultrix */
00186 #define ENABLE_T3D_DAT          (_CR || _CM)            /* cray mpp */
00187 #define ENABLE_IA_DAT           (_IR || _IA)            /* intel */
00188 #define ENABLE_CDC_DAT          ( NO)                   /* cdc */
00189 #define ENABLE_NVE_DAT          ( NO)                   /* nosve */
00190 #define ENABLE_205_DAT          ( NO)                   /* c205 */
00191 /* USER data is always disabled/soft */
00192 #define ENABLE_SITE_DAT         ( NO)                   /* site */
00193 
00194 #endif  /* !_FDCCONFIG_H */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines