summaryrefslogtreecommitdiffstats
path: root/libc/sysdeps/linux/common/bits/uClibc_errno.h
diff options
context:
space:
mode:
author"Steven J. Hill" <sjhill@realitydiluted.com>2006-08-24 03:17:53 +0000
committer"Steven J. Hill" <sjhill@realitydiluted.com>2006-08-24 03:17:53 +0000
commit31b3ef38e24c2477b3786f3614f168ecd3890397 (patch)
treea97c95138c735703e9d820ee77399bba591dab53 /libc/sysdeps/linux/common/bits/uClibc_errno.h
parent4a208f72ced0bfd835ef1530907db1e8e33295c7 (diff)
downloaduClibc-alpine-31b3ef38e24c2477b3786f3614f168ecd3890397.tar.bz2
uClibc-alpine-31b3ef38e24c2477b3786f3614f168ecd3890397.tar.xz
Copy from trunk.
Diffstat (limited to 'libc/sysdeps/linux/common/bits/uClibc_errno.h')
-rw-r--r--libc/sysdeps/linux/common/bits/uClibc_errno.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/libc/sysdeps/linux/common/bits/uClibc_errno.h b/libc/sysdeps/linux/common/bits/uClibc_errno.h
new file mode 100644
index 000000000..9da9f8155
--- /dev/null
+++ b/libc/sysdeps/linux/common/bits/uClibc_errno.h
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
+ *
+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
+ */
+#ifndef _BITS_UCLIBC_ERRNO_H
+#define _BITS_UCLIBC_ERRNO_H 1
+
+#ifdef IS_IN_rtld
+# undef errno
+# define errno _dl_errno
+extern int _dl_errno; // attribute_hidden;
+#elif defined __UCLIBC_HAS_THREADS__
+# include <tls.h>
+# if USE___THREAD
+# undef errno
+# ifndef NOT_IN_libc
+# define errno __libc_errno
+# else
+# define errno errno
+# endif
+extern __thread int errno __attribute_tls_model_ie;
+# endif /* USE___THREAD */
+#endif /* IS_IN_rtld */
+
+#define __set_errno(val) (errno = (val))
+
+#ifndef __ASSEMBLER__
+extern int *__errno_location (void) __THROW __attribute__ ((__const__))
+# ifdef IS_IN_rtld
+ attribute_hidden
+# endif
+;
+#include <tls.h>
+#if USE___THREAD
+libc_hidden_proto(__errno_location)
+#endif
+
+/* We now need a declaration of the `errno' variable. */
+# ifndef __UCLIBC_HAS_THREADS__
+/*extern int errno;*/
+libc_hidden_proto(errno)
+# endif
+#endif /* !__ASSEMBLER__ */
+
+#endif