up | Inhaltsverzeichniss | Kommentar

Manual page for probe(9E)

probe - determine if a non-self-identifying device is present

SYNOPSIS

#include <sys/conf.h>

#include <sys/ddi.h>
#include <sys/sunddi.h>
static int prefixprobe(dev_info_t *dip);

INTERFACE LEVEL

Solaris DDI specific (Solaris DDI). This entry point is required for non-self-identifying devices. You must write it for such devices. For self-identifying devices, nulldev.9f should be specified in the dev_ops.9s structure if a probe routine is not necessary.

ARGUMENTS

dip
Pointer to the device's dev_info structure.

DESCRIPTION

probe() determines whether the device corresponding to dip actually exists and is a valid device for this driver. probe() is called after identify.9e and before attach.9e for a given dip. For example, the probe() routine can map the device registers using ddi_map_regs.9f then attempt to access the hardware using ddi_peek.9f and/or ddi_poke.9f and determine if the device exists. Then the device registers should be unmapped using ddi_unmap_regs.9f

probe() should only probe the device - it should not create or change any software state. Device initialization should be done in attach.9e

For a self-identifying device, this entry point is not necessary. However, if a device exists in both self-identifying and non-self-identifying forms, a probe() routine can be provided to simplify the driver. ddi_dev_is_sid.9f can then be used to determine whether probe() needs to do any work. See ddi_dev_is_sid.9f for an example.

RETURN VALUES

DDI_PROBE_SUCCESS
if the probe was successful.
DDI_PROBE_FAILURE
if the probe failed.
DDI_PROBE_DONTCARE
if the probe was unsuccessful, yet attach.9e should still be called.
DDI_PROBE_PARTIAL
if the instance is not present now, but may be present in the future.

SEE ALSO

attach.9e identify.9e ddi_dev_is_sid.9f ddi_map_regs.9f ddi_peek.9f ddi_poke.9f nulldev.9f dev_ops.9s


index | Inhaltsverzeichniss | Kommentar

Created by unroff & hp-tools. © by Hans-Peter Bischof. All Rights Reserved (1997).

Last modified 21/April/97