manpages.info - online man pages   

SunOS man pages : ddi_create_minor_node (9)

Kernel Functions for Drivers            ddi_create_minor_node(9F)

NAME

ddi_create_minor_node - create a minor node for this device

SYNOPSIS

#include <sys/stat.h> #include <sys/sunddi.h> int ddi_create_minor_node(dev_info_t *dip, char *name, int spec_type, minor_t minor_num, char *node_type, int flag);

INTERFACE LEVEL

Solaris DDI specific (Solaris DDI).

PARAMETERS

dip A pointer to the device's dev_info structure. name The name of this particular minor device. spec_type S_IFCHR or S_IFBLK for character or block minor dev- ices respectively. minor_num The minor number for this particular minor device. node_type Any string that uniquely identifies the type of node. The following predefined node types are provided with this release: DDI_NT_SERIAL For serial ports DDI_NT_SERIAL_MB For on board serial ports DDI_NT_SERIAL_DO For dial out ports DDI_NT_SERIAL_MB_DO For on board dial out ports DDI_NT_BLOCK For hard disks DDI_NT_BLOCK_CHAN For hard disks with channel or target numbers DDI_NT_CD For CDROM drives DDI_NT_CD_CHAN SunOS 5.8 Last change: 13 Oct 1998 1 Kernel Functions for Drivers ddi_create_minor_node(9F) For CDROM drives with channel or target numbers DDI_NT_FD For floppy disks DDI_NT_TAPE For tape drives DDI_NT_NET For network devices DDI_NT_DISPLAY For display devices DDI_PSEUDO For pseudo devices flag If the device is a clone device then this flag is set to CLONE_DEV else it is set to 0. The device node class can also be specified using this flag. The dev- ice classes do not have an effect in the creation of the device node in a non-clustered environment; but for device drivers intended for use in a clustered environment, one of the following needs to be speci- fied. If the device class is not indicated the default class for pseudo devices will be NODESPECIFIC_DEV and for physical devices will be ENUMERATE_DEV. GLOBAL_DEV The device is a node invariant device and can be opened from any node in the cluster. NODEBOUND_DEV The device is node invariant but it has cluster wide state associated with it so that all subse- quent opens must be directed there. NODESPECIFIC_DEV The device node provides node specific informa- tion and must be opened co-located with the pro- cess. ENUMERATE_DEV Unique cluster wide device nodes. The i/o must take place at the host where the device node was created. SunOS 5.8 Last change: 13 Oct 1998 2 Kernel Functions for Drivers ddi_create_minor_node(9F)

DESCRIPTION

ddi_create_minor_node() provides the necessary information to enable the system to create the /dev and /devices hierarchies. The name is used to create the minor name of the block or character special file under the /devices hierarchy. At-sign (@), slash (/), and space are not allowed. The spec_type specifies whether this is a block or character device. The minor_num is the minor number for the device. The node_type is used to create the names in the /dev hierarchy that refers to the names in the /devices hierarchy. See disks(1M), ports(1M), tapes(1M), devlinks(1M). Finally flag determines if this is a clone device or not, and what device class the node belongs to.

RETURN VALUES

ddi_create_minor_node() returns: DDI_SUCCESS Was able to allocate memory, create the minor data structure, and place it into the linked list of minor devices for this driver. DDI_FAILURE Minor node creation failed.

EXAMPLES

Example 1: create a data structure describing a minor device with minor number of 0 The following example creates a data structure describing a minor device called foo which has a minor number of 0. It is of type DDI_NT_BLOCK (a block device) and it is not a clone device. ddi_create_minor_node(dip, "foo", S_IFBLK, 0, DDI_NT_BLOCK, 0);

SEE ALSO

add_drv(1M), devlinks(1M), disks(1M), drvconfig(1M), ports(1M), tapes(1M), attach(9E), ddi_remove_minor_node(9F) Writing Device Drivers SunOS 5.8 Last change: 13 Oct 1998 3