Go to main content

man pages section 9: DDI and DKI Kernel Functions

Exit Print View

Updated: July 2017



ddi_dev_is_sid - tell whether a device is self-identifying


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

int ddi_dev_is_sid(dev_info_t *dip);

Interface Level

Solaris DDI specific (Solaris DDI).



A pointer to the device's dev_info structure.


The ddi_dev_is_sid() function tells the caller whether the device described by dip is self-identifying, that is, a device that can unequivocally tell the system that it exists. This is useful for drivers that support both a self-identifying as well as a non-self-identifying variants of a device (and therefore must be probed).

Return Values


Device is self-identifying.


Device is not self-identifying.


The ddi_dev_is_sid() function can be called from user, interrupt, or kernel context.


1   ...
2   int
3   bz_probe(dev_info_t *dip)
4   {
5   	...
6   	if (ddi_dev_is_sid(dip) == DDI_SUCCESS) {
7   		/*
8   		 * This is the self-identifying version (OpenBoot).
9   		 * No need to probe for it because we know it is there.
10  		 * The existence of dip && ddi_dev_is_sid() proves this.
11  		 */
12  			return (DDI_PROBE_DONTCARE);
13  	}
14  	/*
15  	 * Not a self-identifying variant of the device. Now we have to
16  	 * do some work to see whether it is really attached to the
17  	 * system.
18  	 */
19  ...

See Also

probe(9E) Writing Device Drivers for Oracle Solaris 11.3