aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog14
-rw-r--r--manual/errno.texi24
-rw-r--r--sysdeps/gnu/errlist.c42
-rw-r--r--sysdeps/unix/sysv/linux/Versions3
4 files changed, 82 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 5b58a02..6a6083f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2004-10-20 Roland McGrath <roland@redhat.com>
+
+ * manual/errno.texi (Error Codes): Add ENOKEY, EKEYEXPIRED,
+ EKEYREVOKED, EKEYREJECTED.
+ * sysdeps/unix/sysv/linux/Versions (libc: GLIBC_2.3.4): New errlist.
+ * sysdeps/gnu/errlist.c: Regenerated
+
+ * sysdeps/gnu/errlist-compat.awk: Don't bail if Versions gives a count
+ higher than ERR_MAX reports. Instead, emit a #define ERR_MAX.
+ * sysdeps/gnu/Makefile ($(objpfx)errlist-compat.h): New target.
+ (generated): Add errlist-compat.h.
+ * sysdeps/gnu/errlist.awk: Make output #include <errlist-compat.h> to
+ define ERR_MAX and use that for table size.
+
2004-10-20 Ulrich Drepper <drepper@redhat.com>
* sysdeps/unix/sysv/linux/syscalls.list: Add entries for setaltroot,
diff --git a/manual/errno.texi b/manual/errno.texi
index c799d26..7872452 100644
--- a/manual/errno.texi
+++ b/manual/errno.texi
@@ -1229,6 +1229,30 @@ They are not yet documented.}
@comment errno ???/???
@end deftypevr
+@comment errno.h
+@comment Linux???: Required key not available
+@deftypevr Macro int ENOKEY
+@comment errno ???/???
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Key has expired
+@deftypevr Macro int EKEYEXPIRED
+@comment errno ???/???
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Key has been revoked
+@deftypevr Macro int EKEYREVOKED
+@comment errno ???/???
+@end deftypevr
+
+@comment errno.h
+@comment Linux???: Key was rejected by service
+@deftypevr Macro int EKEYREJECTED
+@comment errno ???/???
+@end deftypevr
+
@node Error Messages, , Error Codes, Error Reporting
@section Error Messages
diff --git a/sysdeps/gnu/errlist.c b/sysdeps/gnu/errlist.c
index 8131038..3098fc3 100644
--- a/sysdeps/gnu/errlist.c
+++ b/sysdeps/gnu/errlist.c
@@ -7,7 +7,15 @@
# define ERR_REMAP(n) n
#endif
-const char *const _sys_errlist_internal[] =
+#if !defined EMIT_ERR_MAX && !defined ERRLIST_NO_COMPAT
+# include <errlist-compat.h>
+#endif
+#ifdef ERR_MAX
+# define ERRLIST_SIZE ERR_MAX + 1
+#else
+# define ERRLIST_SIZE
+#endif
+const char *const _sys_errlist_internal[ERRLIST_SIZE] =
{
[0] = N_("Success"),
#ifdef EPERM
@@ -1400,6 +1408,38 @@ TRANS error; @pxref{Cancel AIO Operations}. */
# define ERR_MAX EMEDIUMTYPE
# endif
#endif
+#ifdef ENOKEY
+/* */
+ [ERR_REMAP (ENOKEY)] = N_("Required key not available"),
+# if ENOKEY > ERR_MAX
+# undef ERR_MAX
+# define ERR_MAX ENOKEY
+# endif
+#endif
+#ifdef EKEYEXPIRED
+/* */
+ [ERR_REMAP (EKEYEXPIRED)] = N_("Key has expired"),
+# if EKEYEXPIRED > ERR_MAX
+# undef ERR_MAX
+# define ERR_MAX EKEYEXPIRED
+# endif
+#endif
+#ifdef EKEYREVOKED
+/* */
+ [ERR_REMAP (EKEYREVOKED)] = N_("Key has been revoked"),
+# if EKEYREVOKED > ERR_MAX
+# undef ERR_MAX
+# define ERR_MAX EKEYREVOKED
+# endif
+#endif
+#ifdef EKEYREJECTED
+/* */
+ [ERR_REMAP (EKEYREJECTED)] = N_("Key was rejected by service"),
+# if EKEYREJECTED > ERR_MAX
+# undef ERR_MAX
+# define ERR_MAX EKEYREJECTED
+# endif
+#endif
};
const int _sys_nerr_internal
diff --git a/sysdeps/unix/sysv/linux/Versions b/sysdeps/unix/sysv/linux/Versions
index 955d93d..2d38ed6 100644
--- a/sysdeps/unix/sysv/linux/Versions
+++ b/sysdeps/unix/sysv/linux/Versions
@@ -117,6 +117,9 @@ libc {
# new syscalls
setaltroot; add_key; request_key; keyctl;
+
+ #errlist-compat 129
+ _sys_errlist; sys_errlist; _sys_nerr; sys_nerr;
}
GLIBC_PRIVATE {
# functions used in other libraries