MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Kernel Functions for Drivers                        ldiioctl(9F)



NAME
     ldiioctl - send an ioctl to a device

SYNOPSIS
     #include 



     int ldiioctl(ldihandlet lh, int cmd, intptrt arg, int mode,
          credt  *cr, int *rvalp);


PARAMETERS
     lh       Layered handle.


     cr       Pointer to a credential structure used  to  open  a
              device.


     rvalp    Caller return value. (May be set by driver  and  is
              valid only if the ioctl() succeeds).


     cmd      Command argument. Interpreted by driver ioctl()  as
              the operation to be performed.


     arg      Driver parameter. Argument interpretation is driver
              dependent and usually depends on the command type.


     mode     Bit field that contains:

              FKIOCTL    Inform the target device that the  ioctl
                         originated from within the kernel.



DESCRIPTION
     The ldiioctl() function passes an ioctl request to the dev-
     ice entry point for the device specified by the layered han-
     dle. This operation is supported for block,  character,  and
     streams devices.


     If arg is interpreted  as a pointer  (that  is,  as  not  an
     immediate  value)  and  the data pointed to by arg is in the
     kernels address space, the FKIOCTL flag should be set.  This
     indicates to the target driver that no data model conversion
     is necessary.




SunOS 5.11          Last change: 3 June 2003                    1






Kernel Functions for Drivers                        ldiioctl(9F)



     If the caller of ldiioctl() is not the  originator  of  the
     ioctl  data pointed to by arg, (for example, when passing on
     an ioctl request from a user process), the caller must  pass
     on  the  mode  parameter  from  the  original ioctl. This is
     because the mode parameter contains the contains the FMODELS
     bits  that  enable  the  target driver to determine the data
     model of the process which originated the ioctl and  perform
     any  necessary  conversions.  See ddimodelconvertfrom(9F)
     for more information.

STREAM IOCTLS
     For  a   general   description   of   streams   ioctls   see
     streamio(7I).  ldiioctl()  supports  a  number  of  streams
     ioctls, using layered handles in the place of file  descrip-
     tors.  When  issuing  streams  ioctls  the FKIOCTL parameter
     should be specified. The possible  return  values  for  sup-
     ported ioctl commands are also documented in streamio(7I).


     The following streams ioctls are supported:

     IPLINK      Behaves as documented in streamio(7I). The lay-
                  ered handle lh should point to the streams mul-
                  tiplexer. The arg parameter should point  to  a
                  layered handle for another streams driver.


     IUNPLINK    Behaves as documented  in  streamio(7I)).   The
                  layered  handle  lh should point to the streams
                  multiplexer. The arg parameter  is  the  multi-
                  plexor  ID  number returned by IPLINK when the
                  streams were linked.


RETURN VALUES
     The ldiioctl()  function  returns  0  upon  success.  If  a
     failure  occurs  before the request is passed on to the dev-
     ice, possible return values are shown below.  Otherwise  any
     other error number may be returned by the device.

     EINVAL     Invalid input parameters.


     ENOTSUP    Operation is not supported for this device.


CONTEXT
     These functions can be called from user or kernel context.

SEE ALSO
     streamio(7I), ddimodelconvertfrom(9F)




SunOS 5.11          Last change: 3 June 2003                    2



OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™