device_probe(9)

NAME

DEVICE_PROBE - probe for device existence

SYNOPSIS

#include <sys/param.h>
#include <sys/bus.h>
int
DEVICE_PROBE(device_t dev);

DESCRIPTION

The DEVICE_PROBE() method should probe to see if the device
is present.
It should return 0 if the device exists, ENXIO if it cannot
be found. If
some other error happens during the probe (such as a memory
allocation
failure), an appropriate error code should be returned. For
cases where
more than one driver matches a device, a priority value can
be returned.
In this case, success codes are values less than or equal to
zero with
the highest value representing the best match. Failure
codes are represented by positive values and the regular UNIX error codes
should be used
for the purpose.
If a driver returns a success code which is less than zero,
it must not
assume that it will be the same driver which is attached to
the device.
In particular, it must not assume that any values stored in
the softc
structure will be available for its attach method and any
resources allocated during probe must be released and re-allocated if the
attach method
is called. In addition it is an absolute requirement that
the probe routine have no side effects whatsoever. The probe routine may
be called
more than once before the attach routine is called.
If a success code of zero is returned, the driver can assume
that it will
be the one attached, but must not hold any resources when
the probe routine returns. A driver may assume that the softc is pre
served when it
returns a success code of zero.

RETURN VALUES

A value equal to or less than zero indicates success,
greater than zero
indicates an error (errno). For values equal to or less
than zero: zero
indicates highest priority, no further probing is done; for
a value less
than zero, the lower the value the lower the priority, e.g.
-100 indicates a lower priority than -50.

SEE ALSO

device(9), DEVICE_ATTACH(9), DEVICE_DETACH(9), DEVICE_IDEN
TIFY(9),
DEVICE_SHUTDOWN(9)

AUTHORS

This manual page was written by Doug Rabson.
BSD January 6, 2005
Copyright © 2010-2024 Platon Technologies, s.r.o.           Home | Man pages | tLDP | Documents | Utilities | About
Design by styleshout