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/compiler-rt/lib/sanitizer_common/sanitizer_errno.cc - Sanitizer
contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno_codes.h
contrib/libxo/tests/gettext/strerror.pot - libxo definitions for the error
contrib/libxo/tests/gettext/po/pig_latin/strerror.po
lib/libsysdecode/errno.c - CloudABI interface for the error
sys/compat/cloudabi/cloudabi_errno.c
sys/contrib/cloudabi/cloudabi_types_common.h
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.