You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
3.8 KiB
131 lines
3.8 KiB
/* errno.h: ANSI 'C' (X3J11 Oct 88) library header, section 4.1.3 */
|
|
/* Copyright (C) Codemist Ltd., 1988 */
|
|
/* Copyright 1991 ARM Limited. All rights reserved. */
|
|
/* version 1 */
|
|
|
|
/*
|
|
* RCS $Revision: 179217 $
|
|
* Checkin $Date: 2013-03-12 14:03:19 +0000 (Tue, 12 Mar 2013) $
|
|
* Revising $Author: drodgman $
|
|
*/
|
|
|
|
#ifndef __errno_h
|
|
#define __errno_h
|
|
#define __ARMCLIB_VERSION 5050106
|
|
|
|
#define _ARMABI_PURE __declspec(__nothrow) __attribute__((const))
|
|
|
|
#ifndef __ERRNO_DECLS
|
|
#define __ERRNO_DECLS
|
|
|
|
#undef __CLIBNS
|
|
|
|
#ifdef __cplusplus
|
|
namespace std {
|
|
#define __CLIBNS std::
|
|
extern "C" {
|
|
#else
|
|
#define __CLIBNS
|
|
#endif /* __cplusplus */
|
|
|
|
|
|
extern _ARMABI_PURE volatile int *__aeabi_errno_addr(void);
|
|
|
|
|
|
#ifdef __cplusplus
|
|
} /* extern "C" */
|
|
} /* namespace std */
|
|
#endif /* __cplusplus */
|
|
#endif /* __ERRNO_DECLS */
|
|
|
|
#ifdef __cplusplus
|
|
#ifndef __ERRNO_NO_EXPORTS
|
|
using ::std::__aeabi_errno_addr;
|
|
#endif /* __ERRNO_NO_EXPORTS */
|
|
#endif /* __cplusplus */
|
|
|
|
#define errno (*__CLIBNS __aeabi_errno_addr())
|
|
/*
|
|
* expands to a modifiable lvalue that has type volatile int, the value of
|
|
* which is set to a positive error code by several library functions. It is
|
|
* initialised to zero at program startup, but is never set to zero by any
|
|
* library function. The value of errno may be set to nonzero by a library
|
|
* function call whether or not there is an error, provided the use of errno
|
|
* is not documented in the description of the function in the Standard.
|
|
*/
|
|
|
|
|
|
/*
|
|
* Error numbers defined in the C standard need the ABI portability
|
|
* mechanism.
|
|
*/
|
|
#if _AEABI_PORTABILITY_LEVEL != 0 && !defined _AEABI_PORTABLE
|
|
#define _AEABI_PORTABLE
|
|
#endif
|
|
|
|
/* The ABI-defined signal numbers (EDOM, ERANGE and EILSEQ) are
|
|
* defined differently depending on ABI conformance level. */
|
|
#if _AEABI_PORTABILITY_LEVEL != 0 || (!defined _AEABI_PORTABILITY_LEVEL && __DEFAULT_AEABI_PORTABILITY_LEVEL != 0)
|
|
extern const int __aeabi_EDOM;
|
|
extern const int __aeabi_ERANGE;
|
|
extern const int __aeabi_EILSEQ;
|
|
#define EDOM (__aeabi_EDOM)
|
|
#define ERANGE (__aeabi_ERANGE)
|
|
#define EILSEQ (__aeabi_EILSEQ)
|
|
#else
|
|
|
|
#define EDOM 1
|
|
/*
|
|
* If a mathematical function suffers a domain error (an input
|
|
* argument is outside the domain over which the mathematical
|
|
* function is defined, e.g. log of a negative number) the integer
|
|
* expression errno acquires the value of the macro EDOM.
|
|
*
|
|
* EDOM is also returned by ftell, fgetpos and fsetpos when they
|
|
* fail.
|
|
*/
|
|
|
|
#define ERANGE 2
|
|
/*
|
|
* If a mathematical function suffers a range error (the result of
|
|
* the function is too large or too small to be accurately
|
|
* represented in the output floating-point format), the integer
|
|
* expression errno acquires the value of the macro ERANGE.
|
|
*
|
|
* ERANGE is used by functions in math.h and complex.h, and also by
|
|
* the strto* and wcsto* family of decimal-to-binary conversion
|
|
* functions (both floating and integer) and by floating-point
|
|
* conversions in scanf.
|
|
*/
|
|
|
|
#define EILSEQ 4
|
|
/*
|
|
* EILSEQ is generated by the restartable multi-byte character
|
|
* processing routines to indicate an encoding error: that is, it is
|
|
* generated by mbrtowc, wcrtomb, mbsrtowcs and wcsrtombs, but not
|
|
* by mbtowc, wctomb, mbstowcs or wcsrtombs.
|
|
*
|
|
* It is also generated by the wide-character stdio functions:
|
|
* fputwc, putwc, putwchar, fputws, fgetwc, getwc, getwchar, fgetws.
|
|
*/
|
|
|
|
#endif /* end of conditional definition of ABI-defined signals */
|
|
|
|
#define ESIGNUM 3
|
|
/*
|
|
* ESIGNUM is generated by signal() if the user attempts to change
|
|
* the handling of a nonexistent signal. ESIGNUM is not part of the
|
|
* ANSI C standard.
|
|
*/
|
|
|
|
#define EINVAL 5
|
|
#define ENOMEM 6
|
|
/*
|
|
* EINVAL and ENOMEM can be generated by posix_memalign().
|
|
*/
|
|
|
|
#endif
|
|
|
|
/* end of errno.h */
|
|
|