]> sourceware.org Git - glibc.git/blob - include/errno.h
Update copyright notices with scripts/update-copyrights
[glibc.git] / include / errno.h
1 #ifndef _ERRNO_H
2
3 #include <stdlib/errno.h>
4
5 #if defined _ERRNO_H && !defined _ISOMAC && !defined __cplusplus
6
7 # ifdef IS_IN_rtld
8 # include <dl-sysdep.h>
9 # endif
10
11 # if RTLD_PRIVATE_ERRNO
12 /* The dynamic linker uses its own private errno variable.
13 All access to errno inside the dynamic linker is serialized,
14 so a single (hidden) global variable is all it needs. */
15
16 # undef errno
17 # define errno rtld_errno
18 extern int rtld_errno attribute_hidden;
19
20 # elif !defined NOT_IN_libc || defined IN_LIB
21
22 # include <tls.h>
23
24 # undef errno
25 # ifndef NOT_IN_libc
26 # define errno __libc_errno
27 # else
28 # define errno errno /* For #ifndef errno tests. */
29 # endif
30 extern __thread int errno attribute_tls_model_ie;
31
32 # endif /* !NOT_IN_libc || IN_LIB */
33
34 # define __set_errno(val) (errno = (val))
35
36 # ifndef __ASSEMBLER__
37 extern int *__errno_location (void) __THROW __attribute__ ((__const__))
38 # if RTLD_PRIVATE_ERRNO
39 attribute_hidden
40 # endif
41 ;
42 libc_hidden_proto (__errno_location)
43 # endif
44
45 #endif /* _ERRNO_H */
46
47 #endif /* ! _ERRNO_H */
This page took 0.040171 seconds and 5 git commands to generate.