There's some unclarity whether major/minor of device nodes are supposed to be "unsigned" or "dev_t". Various codebases assume the latter, but glibc's major()/minor() types actually return a value typed to "unsigned". On glibc dev_t is actually 64bit even if the kernel only exposes 32bit. Hence this distinction kinda matters. Let's clean things up a bit with handling: let's followe glibc's type system here, and use unsigned (and not int). Also let's pass invalid major/minor values around as UINT_MAX rather than via pointers, to match how we usually do this, and to shorten our code a bit. This is safe, since given the linux dev_t space being 32bit only we can't possibly have a valid major or minor this hight, given they must be smaller in size. While other archs disagree on the types of major/minor, they also tend to have similar limits. In fact on FreeBSD for example major()/minor() returns a signed int. Which would hence also mean that UINT_MAX cannot be a valid major or minor.
System and Service Manager
Details
Most documentation is available on systemd's web site.
Assorted, older, general information about systemd can be found in the systemd Wiki.
Information about build requirements is provided in the README file.
Consult our NEWS file for information about what's new in the most recent systemd versions.
Please see the Code Map for information about this repository's layout and content.
Please see the Hacking guide for information on how to hack on systemd and test your modifications.
Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.
When preparing patches for systemd, please follow our Coding Style Guidelines.
If you are looking for support, please contact our mailing list, join our IRC channel #systemd on libera.chat or Matrix channel
Stable branches with backported patches are available in the stable repo.
