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),  de‐
       vlinks(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  de‐
       vice  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_DEVT2IN‐
       STANCE and DDI_INFO_DEVT2DEVINFO  getinfo(9E) calls  to  style-2  minor
       nodes.  (The  correct  association  is  already established by qassoci‐
       ate(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