(root)/
gcc-13.2.0/
gcc/
ada/
aux-io.c
       1  /****************************************************************************
       2   *                                                                          *
       3   *                         GNAT RUN-TIME COMPONENTS                         *
       4   *                                                                          *
       5   *                              A - T R A N S                               *
       6   *                                                                          *
       7   *                          C Implementation File                           *
       8   *                                                                          *
       9   *           Copyright (C) 1992-2023, Free Software Foundation, Inc.        *
      10   *                                                                          *
      11   * GNAT is free software;  you can  redistribute it  and/or modify it under *
      12   * terms of the  GNU General Public License as published  by the Free Soft- *
      13   * ware  Foundation;  either version 3,  or (at your option) any later ver- *
      14   * sion.  GNAT is distributed in the hope that it will be useful, but WITH- *
      15   * OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY *
      16   * or FITNESS FOR A PARTICULAR PURPOSE.                                     *
      17   *                                                                          *
      18   * As a special exception under Section 7 of GPL version 3, you are granted *
      19   * additional permissions described in the GCC Runtime Library Exception,   *
      20   * version 3.1, as published by the Free Software Foundation.               *
      21   *                                                                          *
      22   * You should have received a copy of the GNU General Public License and    *
      23   * a copy of the GCC Runtime Library Exception along with this program;     *
      24   * see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    *
      25   * <http://www.gnu.org/licenses/>.                                          *
      26   *                                                                          *
      27   * GNAT was originally developed  by the GNAT team at  New York University. *
      28   * Extensive contributions were provided by Ada Core Technologies Inc.      *
      29   *                                                                          *
      30   ****************************************************************************/
      31  
      32  #include <stdio.h>
      33  
      34  #ifndef IN_RTS
      35  #include "config.h"
      36  #include "system.h"
      37  #endif
      38  
      39  /* Don't use macros versions of this functions on VxWorks since they cause
      40     imcompatible changes in some VxWorks versions */
      41  #ifdef __vxworks
      42  #undef getchar
      43  #undef putchar
      44  #undef feof
      45  #undef ferror
      46  #undef fileno
      47  #endif
      48  
      49  /* Function wrappers are needed to access the values from Ada which are
      50     defined as C macros.  */
      51  
      52  FILE *c_stdin (void);
      53  FILE *c_stdout (void);
      54  FILE *c_stderr (void);
      55  int seek_set_function (void);
      56  int seek_end_function (void);
      57  void *null_function (void);
      58  int c_fileno (FILE *);
      59  
      60  FILE *
      61  c_stdin (void)
      62  {
      63    return stdin;
      64  }
      65  
      66  FILE *
      67  c_stdout (void)
      68  {
      69    return stdout;
      70  }
      71  
      72  FILE *
      73  c_stderr (void)
      74  {
      75    return stderr;
      76  }
      77  
      78  #ifndef SEEK_SET    /* Symbolic constants for the "fseek" function: */
      79  #define SEEK_SET 0  /* Set file pointer to offset */
      80  #define SEEK_CUR 1  /* Set file pointer to its current value plus offset */
      81  #define SEEK_END 2  /* Set file pointer to the size of the file plus offset */
      82  #endif
      83  
      84  int
      85  seek_set_function (void)
      86  {
      87    return SEEK_SET;
      88  }
      89  
      90  int
      91  seek_end_function (void)
      92  {
      93    return SEEK_END;
      94  }
      95  
      96  void *null_function (void)
      97  {
      98    return NULL;
      99  }
     100  
     101  int
     102  c_fileno (FILE *s)
     103  {
     104    return fileno (s);
     105  }