ddi_create_minor_node(9f) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

ddi_create_minor_node(9f)

ddi_create_minor_node(9F)      Kernel Functions      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 devices respec‐
           tively.


       minor_num

           The minor number for this particular minor device.


       node_type

           Any string literal 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 num‐
                                  bers


           DDI_NT_CD              For CDROM drives


           DDI_NT_CD_CHAN         For CDROM drives with channel or target num‐
                                  bers


           DDI_NT_TAPE            For tape drives


           DDI_NT_NET             For DLPI style 1 or style 2 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.


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(8), ports(8), tapes(8),
       devlinks(8). 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.


CONTEXT
       The ddi_create_minor_node() function can be called from  user  context.
       It is typically called from attach(9E) or ioctl(9E).

EXAMPLES
       Example 1 Create Data Structure Describing Minor Device with Minor Num‐
       ber 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(8), devlinks(8), disks(8),  drvconfig(8),  ports(8),  tapes(8),
       attach(9E), ddi_remove_minor_node(9F)


       Writing Device Drivers in Oracle Solaris 11.4

NOTES
       If  the  driver  is  for a network device (node_type  DDI_NT_NET), note
       that the driver name will undergo the driver name  constraints  identi‐
       fied  in  the  NOTES  section of dlpi(4P). Additionally, the minor name
       must match the driver name for a DLPI style 2 provider. If  the  driver
       is  a  DLPI style 1 provider, the minor name must also match the driver
       name with the exception that the ppa is appended to the minor name.


       Non-gld(4D)-based DLPI network streams drivers are encouraged to switch
       to  gld(4D).  Failing  this,  a  driver that creates DLPI style-2 minor
       nodes must specify CLONE_DEV for  its  style-2  ddi_create_minor_node()
       nodes  and  use qassociate(9F). A driver that supports both style-1 and
       style-2    minor    nodes     should     return     DDI_FAILURE     for
       DDI_INFO_DEVT2INSTANCE  and DDI_INFO_DEVT2DEVINFO  getinfo(9E) calls to
       style-2 minor nodes. (The correct association is already established by
       qassociate(9F)).  A  driver  that only supports style-2 minor nodes can
       use ddi_no_info(9F) for its  getinfo(9E)  implementation.  For  drivers
       that  do  not  follow these rules, the results of a modunload(8) of the
       driver or a cfgadm(8) remove of hardware controlled by the  driver  are
       undefined.

WARNING
       Drivers  must  remove references to GLOBAL_DEV, NODEBOUND_DEV, NODESPE‐
       CIFIC_DEV, and ENUMERATED_DEV to compile under  Solaris  10  and  later
       versions.



Oracle Solaris 11.4               7 Jul 2011         ddi_create_minor_node(9F)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3