This change can also be seen as a step towards supporting more languages in the
kernel, requiring constructors as part of the language, for example C++.
All SYSINITs and SYSUNINITs are registered by a prioritized constructor.
By using a linked list no memory needs to be allocated to sort
the entries during early boot.
The register functions are simply caching the last entry added to the list,
to optimise sorted list insertion. Constructors are sorted by ascending priority
and destructors by descending priority.
The sysinit debugger command is now replaced by a constructors and
destructors command to show all constructors and destructors respectivly.
Sponsored by: NVIDIA Networking