getinfo man page on OpenIndiana

Man page or keyword search:  
man Server   20441 pages
apropos Keyword Search (all sections)
Output format
OpenIndiana logo
[printable version]

getinfo(9E)		      Driver Entry Points		   getinfo(9E)

NAME
       getinfo - get device driver information

SYNOPSIS
       #include <sys/ddi.h>
       #include <sys/sunddi.h>

       int prefixgetinfo(dev_info_t *dip, ddi_info_cmd_t cmd,
	    void *arg, void **resultp);

INTERFACE LEVEL
       Solaris	DDI  specific  (Solaris DDI). This entry point is required for
       drivers which export cb_ops(9S) entry points.

ARGUMENTS
       dip	  Do not use.

       cmd	  Command   argument	-    valid    command	 values	   are
		  DDI_INFO_DEVT2DEVINFO and DDI_INFO_DEVT2INSTANCE.

       arg	  Command specific argument.

       resultp	  Pointer to where the requested information is stored.

DESCRIPTION
       When  cmd  is set to DDI_INFO_DEVT2DEVINFO, getinfo() should return the
       dev_info_t pointer  associated  with  the  dev_t	 arg.  The  dev_info_t
       pointer should be returned in the field pointed to by resultp.

       When  cmd is set to DDI_INFO_DEVT2INSTANCE, getinfo() should return the
       instance number associated with the  dev_t  arg.	 The  instance	number
       should be returned in the field pointed to by resultp.

       Drivers which do not export cb_ops(9S) entry points are not required to
       provide a getinfo() entry point, and may use nodev(9F) in the devo_get‐
       info  field of the dev_ops(9S) structure. A SCSI HBA driver is an exam‐
       ple of a driver which is	 not  required	to  provide  cb_ops(9S)	 entry
       points.

RETURN VALUES
       getinfo() should return:

       DDI_SUCCESS    on success.

       DDI_FAILURE    on failure.

EXAMPLES
       Example 1 getinfo() implementation

	 /*ARGSUSED*/
	 static int
	 rd_getinfo(dev_info_t *dip, ddi_info_cmd_t infocmd, void *arg, \
	 void **resultp)
	 {
		/* Note that in this simple example
		 * the minor number is the instance
		 * number.    */

	      devstate_t *sp;
	      int error = DDI_FAILURE;
	      switch (infocmd) {
	      case DDI_INFO_DEVT2DEVINFO:
		   if ((sp = ddi_get_soft_state(statep,
		       getminor((dev_t) arg))) != NULL) {
			  *resultp = sp->devi;
			  error = DDI_SUCCESS;
		   } else
			  *result = NULL;
		   break;

	      case DDI_INFO_DEVT2INSTANCE:
		   *resultp = (void *) (uintptr_t) getminor((dev_t) arg);
		   error = DDI_SUCCESS;
		   break;
	      }

	      return (error);
	 }

SEE ALSO
       ddi_no_info(9F), nodev(9F), cb_ops(9S), dev_ops(9S)

       Writing Device Drivers

NOTES
       Non-gld(7D)-based DLPI network streams drivers are encouraged to switch
       to gld(7D). Failing this, a driver that creates	DLPI  style-2	 minor
       nodes  must specify CLONE_DEV for its style-2 ddi_create_minor_node(9F)
       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()  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() implementation. For drivers that
       do not follow these rules, the results of a modunload(1M) of the driver
       or  a  cfgadm(1M) remove of hardware controlled by the driver are unde‐
       fined.

SunOS 5.11			  16 Jan 2008			   getinfo(9E)
[top]

List of man pages available for OpenIndiana

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net