Copyright (c) 2008, Sun Microsystems, Inc. All Rights Reserved.
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
cc [ flag... ] file... -ldevinfo [ library... ] #include <libdevinfo.h> char *di_devfs_path(di_node_t node);
char *di_devfs_minor_path(di_minor_t minor);
char *di_path_devfs_path(di_path_t path);
char *di_path_client_devfs_path(di_path_t path);
void di_devfs_path_free(char *path_buf);
node
The handle to a device node in a di_init(3DEVINFO) snapshot.
minor
The handle to a device minor node in a snapshot.
path
The handle to a device path node in a snapshot.
path_buf
A pointer returned by di_devfs_path(), di_devfs_minor_path(), di_path_devfs_path(), or di_path_client_devfs_path().
The di_devfs_path() function generates the physical path of the device node specified by node.
The di_devfs_minor_path() function generates the physical path of the device minor node specified by minor.
The di_path_devfs_path() function generates the pHCI physical path to the device associated with the specified path node. The returned string is identical to the di_devfs_path() for the device had the device not been supported by multipath.
The di_path_client_devfs_path() function generates the vHCI physical path of the multipath client device node associated with the device identity of the specified path node. The returned string is identical to the di_devfs_path() of the multipath client device node.
The di_devfs_path_free() function frees memory that was allocated to store the path returned by di_devfs_path(), di_devfs_minor_path(), di_path_devfs_path(), and di_path_client_devfs_path(). The caller is responsible for freeing this memory by calling di_devfs_path_free().
Upon successful completion, the di_devfs_path(), di_devfs_minor_path(), di_path_devfs_path(), and di_path_client_devfs_path() functions return a pointer to the string containing the path to a device node, a device minor node, or a device path node, respectively. Otherwise, they return NULL and errno is set to indicate the error. For a non-NULL return, the path will not have a "/devices" prefix.
The di_devfs_path(), di_devfs_minor_path(), di_path_devfs_path(), and di_path_client_devfs_path() functions will fail if:
EINVAL
The node, minor, or path argument is not a valid handle.
The di_devfs_path(), di_devfs_minor_path(), di_path_devfs_path(), and di_path_client_devfs_path() functions can also return any error value returned by malloc(3C).
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Interface Stability | Committed |
MT-Level | Safe |
di_init(3DEVINFO), libdevinfo(3LIB), malloc(3C), attributes(5)
Writing Device Drivers