OSDN Git Service

2003-01-29 Joel Sherrill <joel@OARcorp.com>
[pf3gnuchains/gcc-fork.git] / gcc / ada / adaint.h
1 /****************************************************************************
2  *                                                                          *
3  *                         GNAT COMPILER COMPONENTS                         *
4  *                                                                          *
5  *                               A D A I N T                                *
6  *                                                                          *
7  *                                                                          *
8  *                              C Header File                               *
9  *                                                                          *
10  *          Copyright (C) 1992-2003 Free Software Foundation, Inc.          *
11  *                                                                          *
12  * GNAT is free software;  you can  redistribute it  and/or modify it under *
13  * terms of the  GNU General Public License as published  by the Free Soft- *
14  * ware  Foundation;  either version 2,  or (at your option) any later ver- *
15  * sion.  GNAT is distributed in the hope that it will be useful, but WITH- *
16  * OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY *
17  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License *
18  * for  more details.  You should have  received  a copy of the GNU General *
19  * Public License  distributed with GNAT;  see file COPYING.  If not, write *
20  * to  the Free Software Foundation,  59 Temple Place - Suite 330,  Boston, *
21  * MA 02111-1307, USA.                                                      *
22  *                                                                          *
23  * As a  special  exception,  if you  link  this file  with other  files to *
24  * produce an executable,  this file does not by itself cause the resulting *
25  * executable to be covered by the GNU General Public License. This except- *
26  * ion does not  however invalidate  any other reasons  why the  executable *
27  * file might be covered by the  GNU Public License.                        *
28  *                                                                          *
29  * GNAT was originally developed  by the GNAT team at  New York University. *
30  * Extensive contributions were provided by Ada Core Technologies Inc.      *
31  *                                                                          *
32  ****************************************************************************/
33
34 #if defined(__rtems__)
35 #include <stdio.h>
36 #endif
37
38 #include <dirent.h>
39
40 extern int    __gnat_max_path_len;
41 extern void   __gnat_to_gm_time                    PARAMS ((int *, int *,
42                                                             int *, int *,
43                                                             int *, int *,
44                                                             int *));
45 extern int    __gnat_get_maximum_file_name_length  PARAMS ((void));
46 extern int    __gnat_get_switches_case_sensitive   PARAMS ((void));
47 extern int    __gnat_get_file_names_case_sensitive PARAMS ((void));
48 extern char   __gnat_get_default_identifier_character_set PARAMS ((void));
49 extern void   __gnat_get_current_dir               PARAMS ((char *, int *));
50 extern void   __gnat_get_object_suffix_ptr         PARAMS ((int *,
51                                                             const char **));
52 extern void   __gnat_get_executable_suffix_ptr     PARAMS ((int *,
53                                                             const char **));
54 extern void   __gnat_get_debuggable_suffix_ptr     PARAMS ((int *,
55                                                             const char **));
56 extern int    __gnat_readlink                      PARAMS ((char *, char *,
57                                                             size_t));
58 extern int    __gnat_symlink                       PARAMS ((char *, char *));
59 extern int    __gnat_try_lock                      PARAMS ((char *, char *));
60 extern int    __gnat_open_new                      PARAMS ((char *, int));
61 extern int    __gnat_open_new_temp                 PARAMS ((char *, int));
62 extern int    __gnat_mkdir                         PARAMS ((char *));
63 extern int    __gnat_stat                          PARAMS ((char *, 
64                                                             struct stat *));
65 extern int    __gnat_open_read                     PARAMS ((char *, int));
66 extern int    __gnat_open_rw                       PARAMS ((char *, int));
67 extern int    __gnat_open_create                   PARAMS ((char *, int));
68 extern int    __gnat_open_append                   PARAMS ((char *, int));
69 extern long   __gnat_file_length                   PARAMS ((int));
70 extern void   __gnat_tmp_name                      PARAMS ((char *));
71 extern char  *__gnat_readdir                       PARAMS ((DIR *, char *));
72 extern int    __gnat_readdir_is_thread_safe        PARAMS ((void));
73 extern time_t __gnat_file_time_name                PARAMS ((char *));
74 extern time_t __gnat_file_time_fd                  PARAMS ((int));
75 extern void   __gnat_set_file_time_name            PARAMS ((char *, time_t));
76 extern void   __gnat_get_env_value_ptr             PARAMS ((char *, int *,
77                                                             char **));
78 extern int    __gnat_file_exists                   PARAMS ((char *));
79 extern int    __gnat_is_regular_file               PARAMS ((char *));
80 extern int    __gnat_is_absolute_path              PARAMS ((char *));
81 extern int    __gnat_is_directory                  PARAMS ((char *));
82 extern int    __gnat_is_writable_file              PARAMS ((char *));
83 extern int    __gnat_portable_spawn                PARAMS ((char *[]));
84 extern int    __gnat_portable_no_block_spawn       PARAMS ((char *[]));
85 extern int    __gnat_portable_wait                 PARAMS ((int *));
86 extern int    __gnat_waitpid                       PARAMS ((int));
87 extern char  *__gnat_locate_exec                   PARAMS ((char *, char *));
88 extern char  *__gnat_locate_exec_on_path                   PARAMS ((char *));
89 extern char  *__gnat_locate_regular_file           PARAMS ((char *, char *));
90 extern void   __gnat_maybe_glob_args               PARAMS ((int *, char ***));
91 extern void   __gnat_os_exit                       PARAMS ((int));
92 extern void   __gnat_set_env_value                 PARAMS ((char *, char *));
93 extern char  *__gnat_get_libraries_from_registry   PARAMS ((void));
94 extern int    __gnat_to_canonical_file_list_init   PARAMS ((char *, int));
95 extern char  *__gnat_to_canonical_file_list_next   PARAMS ((void));
96 extern void   __gnat_to_canonical_file_list_free   PARAMS ((void));
97 extern char  *__gnat_to_canonical_dir_spec         PARAMS ((char *, int));
98 extern char  *__gnat_to_canonical_file_spec        PARAMS ((char *));
99 extern char  *__gnat_to_host_dir_spec              PARAMS ((char *, int));
100 extern char  *__gnat_to_host_file_spec             PARAMS ((char *));
101 extern char  *__gnat_to_canonical_path_spec        PARAMS ((char *));
102 extern void   __gnat_adjust_os_resource_limits     PARAMS ((void));
103
104 extern int     __gnat_feof                         PARAMS ((FILE *));
105 extern int     __gnat_ferror                       PARAMS ((FILE *));
106 extern int     __gnat_fileno                       PARAMS ((FILE *));
107 extern int     __gnat_is_regular_file_fd           PARAMS ((int));
108 extern FILE *__gnat_constant_stderr                PARAMS ((void));
109 extern FILE *__gnat_constant_stdin                 PARAMS ((void));
110 extern FILE *__gnat_constant_stdout                PARAMS ((void));
111 extern char *__gnat_full_name                      PARAMS ((char *, char *));
112
113 extern int    __gnat_arg_count                     PARAMS ((void));
114 extern int    __gnat_len_arg                       PARAMS ((int));
115 extern void   __gnat_fill_arg                      PARAMS ((char *, int));
116 extern int    __gnat_env_count                     PARAMS ((void));
117 extern int    __gnat_len_env                       PARAMS ((int));
118 extern void   __gnat_fill_env                      PARAMS ((char *, int));
119
120 /* Routines for interface to scanf and printf functions for integer values */
121
122 extern int    get_int                              PARAMS ((void));
123 extern void   put_int                              PARAMS ((int));
124 extern void   put_int_stderr                       PARAMS ((int));
125 extern int    get_char                             PARAMS ((void));
126 extern void   put_char                             PARAMS ((int));
127 extern void   put_char_stderr                      PARAMS ((int));
128 extern char  *mktemp                               PARAMS ((char *));
129
130 extern void   __gnat_set_exit_status               PARAMS ((int));
131
132 extern int    __gnat_expect_fork                   PARAMS ((void));
133 extern void   __gnat_expect_portable_execvp        PARAMS ((char *, char *[]));
134 extern int    __gnat_pipe                          PARAMS ((int *));
135 extern int    __gnat_expect_poll                   PARAMS ((int *, int, int,
136                                                             int *));
137 extern void    __gnat_set_binary_mode              PARAMS ((int));
138 extern void    __gnat_set_text_mode                PARAMS ((int));
139 extern char   *__gnat_ttyname                      PARAMS ((int));
140
141 extern void   convert_addresses                    PARAMS ((char *[], int,
142                                                             void *, int *));
143
144 #ifdef IN_RTS
145 /* Portable definition of strdup, which is not available on all systems.  */
146 #define xstrdup(S)  strcpy ((char *) malloc (strlen (S) + 1), S)
147 #endif