• Thomas Haller's avatar
    shared: cleanup separation and transition between errno and nmerr numbers · 67130e67
    Thomas Haller authored
    The native error numbers (from <errno.h>) and our nmerr extention on top
    of them are almost the same. But there are peculiarities.
    
    Both errno and nmerr must be positive values. That is because some API
    (systemd) like to return negative error codes. So, a positive errno and
    its negative counter part indicate the same error. We need normalization
    functions that make an error number positive (these are nm_errno() and
    nm_errno_native()).
    
    This means, G_MININT needs special treatment, because it cannot be
    represented as a positive integer. Also, zero needs special
    treatment, because we want to encode an error, and zero already encodes
    no-error. Take care of these special cases.
    
    On top of that, nmerr reserves a range within native error numbers for
    NetworkManager specific failure codes. So we need to transition from native
    numbers to nmerr numbers via nm_errno_from_native().
    
    Take better care of some special cases and clean them up.
    
    Also add NM_ERRNO_NATIVE() macro. While nm_errno_native() coerces a
    value in the suitable range, NM_ERRNO_NATIVE() asserts that the number
    is already positive (and returns it as-is). It's use is only for
    asserting and implicitly documenting the requirements we have on the
    number passed to it.
    67130e67
Name
Last commit
Last update
clients Loading commit data...
contrib Loading commit data...
data Loading commit data...
dispatcher Loading commit data...
docs Loading commit data...
examples Loading commit data...
introspection Loading commit data...
libnm Loading commit data...
libnm-core Loading commit data...
libnm-glib Loading commit data...
libnm-util Loading commit data...
m4 Loading commit data...
man Loading commit data...
po Loading commit data...
shared Loading commit data...
src Loading commit data...
tools Loading commit data...
vapi Loading commit data...
.dir-locals.el Loading commit data...
.gitignore Loading commit data...
.gitlab-ci.yml Loading commit data...
.mailmap Loading commit data...
.travis.yml Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING Loading commit data...
COPYING Loading commit data...
ChangeLog Loading commit data...
MAINTAINERS Loading commit data...
Makefile.am Loading commit data...
Makefile.examples Loading commit data...
Makefile.glib Loading commit data...
Makefile.vapigen Loading commit data...
NEWS Loading commit data...
NetworkManager.pc.in Loading commit data...
README Loading commit data...
TODO Loading commit data...
autogen.sh Loading commit data...
config-extra.h.meson Loading commit data...
config.h.meson Loading commit data...
configure.ac Loading commit data...
linker-script-binary.ver Loading commit data...
linker-script-devices.ver Loading commit data...
linker-script-settings.ver Loading commit data...
meson.build Loading commit data...
meson_options.txt Loading commit data...
valgrind.suppressions Loading commit data...
zanata.xml Loading commit data...