di_devlink_init(3DEVIDevice Information Library Functdi_devlink_init(3DEVINFO)NAME
di_devlink_init, di_devlink_fini - create and destroy a snapshot of
devlinks
SYNOPSIS
cc [ flag... ] file... -ldevinfo [ library... ]
#include <libdevinfo.h>
di_devlink_handle_t di_devlink_init(const char *name,
uint_t flags);
int di_devlink_fini(di_devlink_handle_t *hdlp);
PARAMETERS
flags The following values are supported:
DI_MAKE_LINK Synchronize with devlink management before
taking the snapshot. The name argument deter‐
mines which devlink management activities must
complete before taking a devlink snapshot.
Appropriate privileges are required to use
this flag.
name If flags is DI_MAKE_LINK, name determines which devlink man‐
agement activity must complete prior to snapshot.
o If name is NULL then all devlink management activi‐
ties must complete. The devlink snapshot returned
accurately reflects the entire kernel device tree.
o If name is a driver name, devlink management activ‐
ities associated with nodes bound to that driver
must complete.
o If name is a path to a node in the kernel device
tree (no "/devices" prefix), devlink management
activities below node must complete.
o If name is a path to a minor node in the kernel
device tree (no "/devices"prefix), devlink manage‐
ment activities on that minor node must complete.
hdlp The handle to the snapshot obtained by calling
di_devlink_init().
DESCRIPTION
System management applications often need to map a "/devices" path to a
minor node to a public "/dev" device name. The di_devlink_*() functions
provide an efficient way to accomplish this.
The di_devlink_init() function takes a snapshot of devlinks and returns
a handle to this snapshot.
The di_devlink_fini() function destroys the devlink snapshot and frees
the associated memory.
RETURN VALUES
Upon successful completion, di_devlink_init() returns a handle to a
devlink snapshot. Otherwise, DI_LINK_NIL is returned and errno is set
to indicate the error.
Upon successful completion, di_devlink_fini() returns 0. Otherwise, -1
is returned and errno is set to indicate the error.
ERRORS
The di_devlink_init() function will fail if:
EINVAL One or more arguments is invalid.
The di_devlink_init() function with DI_MAKE_LINK can also fail if:
EPERM The user does no have appropriate privileges.
The di_devlink_init() function can set errno to any error value that
can also be set by malloc(3C), open(2), ioctl(2), or mmap(2).
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Interface Stability │Committed │
├─────────────────────────────┼─────────────────────────────┤
│MT-Level │Safe │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOioctl(2), mmap(2), open(2), di_devlink_path(3DEVINFO),
di_devlink_walk(3DEVINFO), libdevinfo(3LIB), malloc(3C), attributes(5)SunOS 5.11 21 Jul 2008 di_devlink_init(3DEVINFO)