(root)/
gcc-13.2.0/
gcc/
config/
vxworks/
_vxworks-versions.h
       1  /* This file is part of GCC.
       2  
       3  GCC is free software; you can redistribute it and/or modify it under
       4  the terms of the GNU General Public License as published by the Free
       5  Software Foundation; either version 3, or (at your option) any later
       6  version.
       7  
       8  GCC is distributed in the hope that it will be useful, but WITHOUT ANY
       9  WARRANTY; without even the implied warranty of MERCHANTABILITY or
      10  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
      11  for more details.
      12  
      13  Under Section 7 of GPL version 3, you are granted additional
      14  permissions described in the GCC Runtime Library Exception, version
      15  3.1, as published by the Free Software Foundation.
      16  
      17  You should have received a copy of the GNU General Public License and
      18  a copy of the GCC Runtime Library Exception along with this program;
      19  see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
      20  <http://www.gnu.org/licenses/>.  */
      21  
      22  #ifndef _VXWORKS_VERSIONS_H
      23  #define _VXWORKS_VERSIONS_H  1
      24  
      25  /* All we need is access to the bare _WRS_VXWORKS_MAJOR/MINOR macros,
      26     exposed by version.h or already provided somehow (e.g. with a self spec
      27     for some reason).  When resorting to system headers, use typical os
      28     paths to prevent possible confusion with a gcc version of version.h
      29     visible during the build and temporarily #undef _WRS_KERNEL to prevent
      30     indirect inclusion of internal header files, which can easily cause
      31     #include ordering nightmares.  */
      32  
      33  #if !defined(_WRS_VXWORKS_MAJOR)
      34  
      35  #if defined(_VSB_CONFIG_FILE)
      36  #define _VXWORKS_VERSION_H <../public/version.h>
      37  #else
      38  #define _VXWORKS_VERSION_H <../h/version.h>
      39  #endif
      40  
      41  #pragma push_macro("_WRS_KERNEL")
      42  #undef _WRS_KERNEL
      43  #include _VXWORKS_VERSION_H
      44  #pragma pop_macro("_WRS_KERNEL")
      45  #endif
      46  
      47  /* A lot depends on the MAJOR so we really need to make sure we have
      48     that.  MINOR is less critical and many environments don't actually
      49     define it unless it is really meaningful (e.g. 6.4 through 6.9).  */
      50  
      51  #if !defined(_WRS_VXWORKS_MAJOR)
      52  #error "_WRS_VXWORKS_MAJOR undefined"
      53  #endif
      54  
      55  #if !defined(_WRS_VXWORKS_MINOR)
      56  #define _WRS_VXWORKS_MINOR 0
      57  #endif
      58  
      59  #define _VXWORKS_MAJOR_GT(MAJOR) (_WRS_VXWORKS_MAJOR > (MAJOR))
      60  #define _VXWORKS_MAJOR_GE(MAJOR) (_WRS_VXWORKS_MAJOR >= (MAJOR))
      61  #define _VXWORKS_MAJOR_LT(MAJOR) (_WRS_VXWORKS_MAJOR < (MAJOR))
      62  #define _VXWORKS_MAJOR_LE(MAJOR) (_WRS_VXWORKS_MAJOR <= (MAJOR))
      63  #define _VXWORKS_MAJOR_EQ(MAJOR) (_WRS_VXWORKS_MAJOR == (MAJOR))
      64  
      65  #define _VXWORKS_MINOR_GT(MINOR) (_WRS_VXWORKS_MINOR > (MINOR))
      66  #define _VXWORKS_MINOR_GE(MINOR) (_WRS_VXWORKS_MINOR >= (MINOR))
      67  #define _VXWORKS_MINOR_LT(MINOR) (_WRS_VXWORKS_MINOR < (MINOR))
      68  #define _VXWORKS_MINOR_LE(MINOR) (_WRS_VXWORKS_MINOR <= (MINOR))
      69  #define _VXWORKS_MINOR_EQ(MINOR) (_WRS_VXWORKS_MINOR == (MINOR))
      70  
      71  #define _VXWORKS_PRE(MAJOR,MINOR) \
      72    (_VXWORKS_MAJOR_LT(MAJOR) \
      73     || (_VXWORKS_MAJOR_EQ(MAJOR) && _VXWORKS_MINOR_LT(MINOR)))
      74  
      75  #endif