1 /* Copyright (C) 1991-2022 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3 
4    The GNU C Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 2.1 of the License, or (at your option) any later version.
8 
9    The GNU C Library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Lesser General Public License for more details.
13 
14    You should have received a copy of the GNU Lesser General Public
15    License along with the GNU C Library; if not, see
16    <https://www.gnu.org/licenses/>.  */
17 
18 /*
19  *	ISO C99 Standard: 7.5 Errors	<errno.h>
20  */
21 
22 #ifndef	_ERRNO_H
23 #define	_ERRNO_H 1
24 
25 #include <features.h>
26 
27 /* The system-specific definitions of the E* constants, as macros.  */
28 #include <bits/errno.h>
29 
30 /* When included from assembly language, this header only provides the
31    E* constants.  */
32 #ifndef __ASSEMBLER__
33 
34 __BEGIN_DECLS
35 
36 /* The error code set by various library functions.  */
37 extern int *__errno_location (void) __THROW __attribute_const__;
38 # define errno (*__errno_location ())
39 
40 # ifdef __USE_GNU
41 
42 /* The full and simple forms of the name with which the program was
43    invoked.  These variables are set up automatically at startup based on
44    the value of argv[0].  */
45 extern char *program_invocation_name;
46 extern char *program_invocation_short_name;
47 
48 #include <bits/types/error_t.h>
49 
50 # endif /* __USE_GNU */
51 
52 __END_DECLS
53 
54 #endif /* !__ASSEMBLER__ */
55 #endif /* errno.h */
56