The following interface sets up a driver and prepares it for use:
int ddi_create_minor_node(dev_info_t *dip, char *name, int spec_type, int minor_num, char *node_type, int flag);
ddi_create_minor_node(9F) advertises a minor device node, which will eventually appear in the /devices directory and refer to the device specified by dip. If the device is a clone device, then flag is set to CLONE_DEV. If it is not a clone device, then flag is set to 0. For device drivers intended for use in a clustered environment, flag must specify the device node class of GLOBAL_DEV, NODEBOUND_DEV, NODESPECIFIC_DEV, or ENUMERATE_DEV.
The following new interface is used to translate between user-visible device numbers and in kernel device numbers:
minor_t ddi_getiminor(dev_t dev);
ddi_getiminor(9F) extracts the minor number as a device number.