On Mon, Apr 10, 2017 at 03:03:10PM +0200, Jeremie Courreges-Anglas wrote:
>
> We have a bunch of patches in ports to deal with EPROTO and EBADMSG not
> being defined. It would be nice to get rid of those. The diff below
> also adds the also missing ENOTRECOVERABLE and EOWNERDEAD.
>
> Thoughts?
>
> (Dunno if there is a point describing verbosely what those new errno
> values mean on other systems...)
I sent a mail around last year for the posix errnos we lack.
Still waiting for a libc major crank which adding errnos requires
as the size of sys_errmsg changes.
--
We are missing a few errnos mentioned in posix 2013.
Excluding the reserved and streams/obsolete ones there is
EBADMSG Bad message
ENOTRECOVERABLE State not recoverable
EOWNERDEAD Previous owner died
EPROTO Protocol error
Index: sys/sys/errno.h
===================================================================
RCS file: /cvs/src/sys/sys/errno.h,v
retrieving revision 1.24
diff -u -p -r1.24 errno.h
--- sys/sys/errno.h 24 Oct 2015 10:42:02 -0000 1.24
+++ sys/sys/errno.h 2 Sep 2016 13:51:36 -0000
@@ -167,8 +167,12 @@
#define EIDRM 89 /* Identifier removed */
#define ENOMSG 90 /* No message of desired type */
#define ENOTSUP 91 /* Not supported */
+#define EBADMSG 92 /* Bad message */
+#define ENOTRECOVERABLE 93 /* State not recoverable */
+#define EOWNERDEAD 94 /* Previous owner died */
+#define EPROTO 95 /* Protocol error */
#if __BSD_VISIBLE
-#define ELAST 91 /* Must be equal largest errno */
+#define ELAST 95 /* Must be equal largest errno */
#endif /* __BSD_VISIBLE */
#ifdef _KERNEL
Index: lib/libc/gen/errlist.c
===================================================================
RCS file: /cvs/src/lib/libc/gen/errlist.c,v
retrieving revision 1.18
diff -u -p -r1.18 errlist.c
--- lib/libc/gen/errlist.c 24 Oct 2015 10:42:02 -0000 1.18
+++ lib/libc/gen/errlist.c 2 Sep 2016 13:51:36 -0000
@@ -142,6 +142,10 @@ const char *const sys_errlist[] = {
"Identifier removed", /* 89 - EIDRM */
"No message of desired type", /* 90 - ENOMSG */
"Not supported", /* 91 - ENOTSUP */
+ "Bad message", /* 92 - EBADMSG */
+ "State not recoverable", /* 93 - ENOTRECOVERABLE */
+ "Previous owner died", /* 94 - EOWNERDEAD */
+ "Protocol error", /* 95 - EPROTO */
};
const int sys_nerr = { sizeof sys_errlist/sizeof sys_errlist[0] };
#if 0
Index: sys/dev/pci/drm/drm_linux.h
===================================================================
RCS file: /cvs/src/sys/dev/pci/drm/drm_linux.h,v
retrieving revision 1.47
diff -u -p -r1.47 drm_linux.h
--- sys/dev/pci/drm/drm_linux.h 5 Apr 2016 20:44:03 -0000 1.47
+++ sys/dev/pci/drm/drm_linux.h 2 Sep 2016 13:51:36 -0000
@@ -87,7 +87,6 @@ typedef off_t loff_t;
#define ERESTARTSYS EINTR
#define ETIME ETIMEDOUT
#define EREMOTEIO EIO
-#define EPROTO EIO
#define ENOTSUPP ENOTSUP
#define KERN_INFO