DI_DEVLINK_INIT(3DEVINFO) Device Information Library Functions DI_DEVLINK_INIT(3DEVINFO)

di_devlink_init, di_devlink_fini - create and destroy a snapshot of devlinks

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);

flags
The following values are supported:

DI_MAKE_LINK

Synchronize with devlink management before taking the snapshot. The name argument determines 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 management activity must complete prior to snapshot.
o
If name is NULL then all devlink management activities must complete. The devlink snapshot returned accurately reflects the entire kernel device tree.
o
If name is a driver name, devlink management activities 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 management activities on that minor node must complete.

hdlp

The handle to the snapshot obtained by calling di_devlink_init().

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.

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.

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).

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE ATTRIBUTE VALUE
Interface Stability Committed
MT-Level Safe

ioctl(2), mmap(2), open(2), malloc(3C), di_devlink_path(3DEVINFO), di_devlink_walk(3DEVINFO), libdevinfo(3LIB), attributes(7)

July 21, 2008 OmniOS