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

The following values are supported:


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.


If flags is DI_MAKE_LINK, name determines which devlink management activity must complete prior to snapshot.
If name is NULL then all devlink management activities must complete. The devlink snapshot returned accurately reflects the entire kernel device tree.
If name is a driver name, devlink management activities associated with nodes bound to that driver must complete.
If name is a path to a node in the kernel device tree (no "/devices" prefix), devlink management activities below node must complete.
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.


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:


One or more arguments is invalid.

The di_devlink_init() function with DI_MAKE_LINK can also fail if:


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:

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