1*53ee8cc1Swenshuai.xi /* Copyright (C) 1991,92,93,94,95,96,97,2002 Free Software Foundation, Inc. 2*53ee8cc1Swenshuai.xi This file is part of the GNU C Library. 3*53ee8cc1Swenshuai.xi 4*53ee8cc1Swenshuai.xi The GNU C Library is free software; you can redistribute it and/or 5*53ee8cc1Swenshuai.xi modify it under the terms of the GNU Lesser General Public 6*53ee8cc1Swenshuai.xi License as published by the Free Software Foundation; either 7*53ee8cc1Swenshuai.xi version 2.1 of the License, or (at your option) any later version. 8*53ee8cc1Swenshuai.xi 9*53ee8cc1Swenshuai.xi The GNU C Library is distributed in the hope that it will be useful, 10*53ee8cc1Swenshuai.xi but WITHOUT ANY WARRANTY; without even the implied warranty of 11*53ee8cc1Swenshuai.xi MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12*53ee8cc1Swenshuai.xi Lesser General Public License for more details. 13*53ee8cc1Swenshuai.xi 14*53ee8cc1Swenshuai.xi You should have received a copy of the GNU Lesser General Public 15*53ee8cc1Swenshuai.xi License along with the GNU C Library; if not, write to the Free 16*53ee8cc1Swenshuai.xi Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 17*53ee8cc1Swenshuai.xi 02111-1307 USA. */ 18*53ee8cc1Swenshuai.xi 19*53ee8cc1Swenshuai.xi /* 20*53ee8cc1Swenshuai.xi * ISO C99 Standard: 7.5 Errors <errno.h> 21*53ee8cc1Swenshuai.xi */ 22*53ee8cc1Swenshuai.xi 23*53ee8cc1Swenshuai.xi #ifndef _ERRNO_H 24*53ee8cc1Swenshuai.xi 25*53ee8cc1Swenshuai.xi /* The includer defined __need_Emath if he wants only the definitions 26*53ee8cc1Swenshuai.xi of EDOM and ERANGE, and not everything else. */ 27*53ee8cc1Swenshuai.xi #ifndef __need_Emath 28*53ee8cc1Swenshuai.xi # define _ERRNO_H 1 29*53ee8cc1Swenshuai.xi # include <features.h> 30*53ee8cc1Swenshuai.xi #endif 31*53ee8cc1Swenshuai.xi 32*53ee8cc1Swenshuai.xi __BEGIN_DECLS 33*53ee8cc1Swenshuai.xi 34*53ee8cc1Swenshuai.xi /* Get the error number constants from the system-specific file. 35*53ee8cc1Swenshuai.xi This file will test __need_Emath and _ERRNO_H. */ 36*53ee8cc1Swenshuai.xi #include <bits/errno.h> 37*53ee8cc1Swenshuai.xi #undef __need_Emath 38*53ee8cc1Swenshuai.xi 39*53ee8cc1Swenshuai.xi #ifdef _ERRNO_H 40*53ee8cc1Swenshuai.xi 41*53ee8cc1Swenshuai.xi /* Declare the `errno' variable, unless it's defined as a macro by 42*53ee8cc1Swenshuai.xi bits/errno.h. This is the case in GNU, where it is a per-thread 43*53ee8cc1Swenshuai.xi variable. This redeclaration using the macro still works, but it 44*53ee8cc1Swenshuai.xi will be a function declaration without a prototype and may trigger 45*53ee8cc1Swenshuai.xi a -Wstrict-prototypes warning. */ 46*53ee8cc1Swenshuai.xi #ifndef errno 47*53ee8cc1Swenshuai.xi extern int errno; 48*53ee8cc1Swenshuai.xi #endif 49*53ee8cc1Swenshuai.xi 50*53ee8cc1Swenshuai.xi #ifdef __USE_GNU 51*53ee8cc1Swenshuai.xi 52*53ee8cc1Swenshuai.xi /* The full and simple forms of the name with which the program was 53*53ee8cc1Swenshuai.xi invoked. These variables are set up automatically at startup based on 54*53ee8cc1Swenshuai.xi the value of ARGV[0] (this works only if you use GNU ld). */ 55*53ee8cc1Swenshuai.xi extern char *program_invocation_name, *program_invocation_short_name; 56*53ee8cc1Swenshuai.xi #endif /* __USE_GNU */ 57*53ee8cc1Swenshuai.xi #endif /* _ERRNO_H */ 58*53ee8cc1Swenshuai.xi 59*53ee8cc1Swenshuai.xi __END_DECLS 60*53ee8cc1Swenshuai.xi 61*53ee8cc1Swenshuai.xi #endif /* _ERRNO_H */ 62*53ee8cc1Swenshuai.xi 63*53ee8cc1Swenshuai.xi /* The Hurd <bits/errno.h> defines `error_t' as an enumerated type so 64*53ee8cc1Swenshuai.xi that printing `error_t' values in the debugger shows the names. We 65*53ee8cc1Swenshuai.xi might need this definition sometimes even if this file was included 66*53ee8cc1Swenshuai.xi before. */ 67*53ee8cc1Swenshuai.xi #if defined __USE_GNU || defined __need_error_t 68*53ee8cc1Swenshuai.xi # ifndef __error_t_defined 69*53ee8cc1Swenshuai.xi typedef int error_t; 70*53ee8cc1Swenshuai.xi # define __error_t_defined 1 71*53ee8cc1Swenshuai.xi # endif 72*53ee8cc1Swenshuai.xi # undef __need_error_t 73*53ee8cc1Swenshuai.xi #endif 74