This proposal is to create a new EINTEGRITY error number. EINTEGRITY's purpose is to respond to errors where an integrity check such as a check-hash or a cross-correlation has failed. For example, an uncorrectable error has been found in a filesystem or a disk subsystem such as gmirror(8) or graid3(8). These changes make no use of the new error, they just add it. Later proposals will be made for the use of the new error number and it will be added to manual pages as appropriate.
As a side effect, this Phabricator thread provides a template for the rather large set files that must be updated to add a new error number. The four primary files that need to be updated are:
lib/libc/sys/intro.2 - the high-level description of the error sys/sys/errno.h - the number assigned to the error lib/libc/gen/errlst.c - the error string assigned to the error lib/libc/nls/C.msg - template for translations of the error string
Additionally these other subsystems need to be updated:
cddl/lib/libdtrace/errno.d - the DTrace description of the error contrib/libc++/include/__errc - C++ library number and error string contrib/libc++/include/errno.h contrib/openbsm/libbsm/bsm_errno.c - OpenBSM uses of the error contrib/openbsm/sys/bsm/audit_errno.h sys/bsm/audit_errno.h sys/security/audit/bsm_errno.c stand/liblua/lerrno.c - Lua use of the error sys/compat/linux/linux_errno.inc - Linux compatibility for the error contrib/libxo/tests/gettext/strerror.pot - libxo definitions for the error contrib/libxo/tests/gettext/po/pig_latin/strerror.po sys/compat/cloudabi/cloudabi_errno.c
Note that FileXX has been added to the front of the path names in the diffs below to force the ordering by area rather than the usual alphabetical by pathname.