Hurd: Add ESUCCESS error_t value.
authorThomas Schwinge <thomas@codesourcery.com>
Thu, 29 Aug 2013 10:06:14 +0000 (12:06 +0200)
committerThomas Schwinge <thomas@codesourcery.com>
Thu, 29 Aug 2013 10:22:30 +0000 (12:22 +0200)
ChangeLog
sysdeps/mach/hurd/bits/errno.h
sysdeps/mach/hurd/errnos.awk

index 3ea2643..f89933c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2013-08-29  Thomas Schwinge  <thomas@codesourcery.com>
+           Roland McGrath  <roland@hack.frob.com>
+
+       * sysdeps/mach/hurd/errnos.awk (BEGIN): Emit ESUCCESS.
+       * sysdeps/mach/hurd/bits/errno.h: Regenerate.
+
 2013-08-29  Samuel Thibault  <samuel.thibault@ens-lyon.org>
 
        * sysdeps/mach/hurd/i386/init-first.c (init1): Use
index 3b6fe76..d20ffe6 100644 (file)
@@ -9,6 +9,14 @@
 
 enum __error_t_codes
 {
+       /* The value zero always means success and it is perfectly fine for
+          code to use 0 explicitly (or implicitly, e.g. via Boolean coercion).
+          Having an enum entry for zero both makes the debugger print the name
+          for error_t-typed zero values, and prevents the compiler from
+          issuing warnings about 'case 0:' in a switch on an error_t-typed
+          value.  */
+       ESUCCESS = 0,
+
 #undef EDOM
 #undef ERANGE
        EPERM           = _HURD_ERRNO (1),
@@ -151,7 +159,7 @@ enum __error_t_codes
        EDQUOT          = _HURD_ERRNO (69),
 #define        EDQUOT          _HURD_ERRNO (69)/* Disk quota exceeded */
        ESTALE          = _HURD_ERRNO (70),
-#define        ESTALE          _HURD_ERRNO (70)/* Stale NFS file handle */
+#define        ESTALE          _HURD_ERRNO (70)/* Stale file handle */
        EREMOTE         = _HURD_ERRNO (71),
 #define        EREMOTE         _HURD_ERRNO (71)/* Object is remote */
        EBADRPC         = _HURD_ERRNO (72),
index 35f5628..2434daa 100644 (file)
@@ -31,6 +31,14 @@ BEGIN {
     print "";
     print "#ifdef _ERRNO_H\n";
     print "enum __error_t_codes\n{";
+    print "\t/* The value zero always means success and it is perfectly fine for";
+    print "\t   code to use 0 explicitly (or implicitly, e.g. via Boolean coercion).";
+    print "\t   Having an enum entry for zero both makes the debugger print the name";
+    print "\t   for error_t-typed zero values, and prevents the compiler from";
+    print "\t   issuing warnings about 'case 0:' in a switch on an error_t-typed";
+    print "\t   value.  */";
+    print "\tESUCCESS = 0,"
+    print "";
     errnoh = 0;
     maxerrno = 0;
     in_mach_errors = "";