Register a miscellaneous device with the kernel. If the minor number is set to MISC_DYNAMIC_MINOR a minor number is assigned and placed in the minor field of the structure. For other cases the minor number requested is used.
The structure passed is linked into the kernel and may not be destroyed until it has been unregistered.
A zero is returned on success and a negative errno code for failure.