'\" te .\" Copyright (c) 2009, Sun Microsystems, Inc. All Rights Reserved .TH di_walk_node 3DEVINFO "16 Jan 2009" "SunOS 5.11" "Device Information Library Functions" .SH NAME di_walk_node \- traverse libdevinfo device nodes .SH SYNOPSIS .LP .nf \fBcc\fR [ \fIflag\fR... ] \fIfile\fR... \fB-ldevinfo\fR [ \fIlibrary\fR... ] #include \fBint\fR \fBdi_walk_node\fR(\fBdi_node_t\fR \fIroot\fR, \fBuint_t\fR \fIflag\fR, \fBvoid *\fR\fIarg\fR, \fBint\fR \fI(*node_callback)\fR(\fBdi_node_t\fR \fInode\fR, \fBvoid *\fR\fIarg\fR)); .fi .SH DESCRIPTION .sp .LP The \fBdi_walk_node()\fR function visits all nodes in the subtree rooted at \fIroot\fR. For each node found, the caller-supplied function \fInode_callback\fR() is invoked. The return value of \fInode_callback\fR() specifies subsequent walking behavior. .SH PARAMETERS .sp .ne 2 .mk .na \fB\fIarg\fR\fR .ad .RS 8n .rt Pointer to caller-specific data. .RE .sp .ne 2 .mk .na \fB\fIflag\fR\fR .ad .RS 8n .rt Specifies walking order, either \fBDI_WALK_CLDFIRST\fR (depth first) or \fBDI_WALK_SIBFIRST\fR (breadth first). \fBDI_WALK_CLDFIRST\fR is the default. .RE .sp .ne 2 .mk .na \fB\fInode\fR\fR .ad .RS 8n .rt The node being visited. .RE .sp .ne 2 .mk .na \fB\fIroot\fR\fR .ad .RS 8n .rt The handle to the root node of the subtree to visit. .RE .SH RETURN VALUES .sp .LP Upon successful completion, \fBdi_walk_node()\fR returns 0. Otherwise, \fB-1\fR is returned and \fIerrno\fR is set to indicate the error. .sp .LP The \fInode_callback\fR() function can return one of the following: .sp .ne 2 .mk .na \fB\fBDI_WALK_CONTINUE\fR\fR .ad .RS 22n .rt Continue walking. .RE .sp .ne 2 .mk .na \fB\fBDI_WALK_PRUNESIB\fR\fR .ad .RS 22n .rt Continue walking, but skip siblings and their child nodes. .RE .sp .ne 2 .mk .na \fB\fBDI_WALK_PRUNECHILD\fR\fR .ad .RS 22n .rt Continue walking, but skip subtree rooted at current node. .RE .sp .ne 2 .mk .na \fB\fBDI_WALK_TERMINATE\fR\fR .ad .RS 22n .rt Terminate the walk immediately. .RE .SH ERRORS .sp .LP The \fBdi_walk_node()\fR function will fail if: .sp .ne 2 .mk .na \fB\fBEINVAL\fR\fR .ad .RS 10n .rt Invalid argument. .RE .SH ATTRIBUTES .sp .LP See \fBattributes\fR(5) for descriptions of the following attributes: .sp .sp .TS tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) . ATTRIBUTE TYPEATTRIBUTE VALUE _ Interface StabilityCommitted _ MT-LevelSafe .TE .SH SEE ALSO .sp .LP \fBdi_init\fR(3DEVINFO), \fBlibdevinfo\fR(3LIB), \fBattributes\fR(5) .sp .LP \fIWriting Device Drivers for Oracle Solaris 11.2\fR