Initial revision
[ssr] / StraySrc / Libraries / DLLLib / h / errno
CommitLineData
2ee739cc 1#pragma force_top_level
2#pragma include_only_once
3
4/* errno.h: ANSI 'C' (X3J11 Oct 88) library header, section 4.1.3 */
5/* Copyright (C) Codemist Ltd. */
6/* Copyright (C) Acorn Computers Ltd. 1991, 1992 */
7/* version 2.00 */
8
9#ifndef __errno_h
10#define __errno_h
11
12#ifndef errno
13 #ifdef __cplusplus
14 extern "C" {
15 #define _VOLATILE
16 #else
17 #define _VOLATILE volatile
18 #endif
19
20 #ifdef SYSTEM_STATICS
21 extern _VOLATILE int *__errno;
22 #define errno *__errno
23 #elif defined(_DLL)
24 extern int *_dll_errno(void);
25 #define errno (*_dll_errno())
26 #else
27 extern _VOLATILE int __errno;
28 #define errno __errno
29 #endif
30
31 #ifdef __cplusplus
32 }
33 #endif
34
35 #undef _VOLATILE
36
37#endif
38
39 /*
40 * expands to a modifiable lvalue that has type volatile int, the value of
41 * which is set to a positive error code by several library functions. It is
42 * initialised to zero at program startup, but is never set to zero by any
43 * library function. The value of errno may be set to nonzero by a library
44 * function call whether or not there is an error, provided the use of errno
45 * is not documented in the description of the function in the Standard.
46 */
47
48#define EDOM 1
49 /*
50 * if a domain error occurs (an input argument is outside the domain over
51 * which the mathematical function is defined) the integer expression errno
52 * acquires the value of the macro EDOM and HUGE_VAL is returned. EDOM may
53 * be used by non-mathematical functions.
54 */
55#define ERANGE 2
56 /*
57 * a range error occurs if the result of a function can not be represented
58 * as a double value. If the result overflows (the magnitude of the result
59 * is so large that it cannot be represented in an object of the specified
60 * type), the function returns the value of the macro HUGE_VAL, with the
61 * same sign as the correct value of the function; the integer expression
62 * errno acquires the value of the macro ERANGE. If the result underflows
63 * (the magnitude of the result is so small that it cannot be represented
64 * in an object of the specified type), the function returns zero; the
65 * integer expression errno acquires the value of the macro ERANGE. ERANGE
66 * may be used by non-mathematical functions.
67 */
68#define ESIGNUM 3
69
70#endif
71
72/* end of errno.h */