/*
* CDDL HEADER START
*
* 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
* 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]
*
* CDDL HEADER END
*/
/*
*/
#ifndef _SYS_DEVINFO_IMPL_H
#define _SYS_DEVINFO_IMPL_H
#include <sys/ddi_impldefs.h>
/*
* This file is separate from libdevinfo.h because the devinfo driver
* needs to know about the stuff. Library consumer should not care
* about stuff defined here.
*
* The only exception is di_priv_data (consolidation private) and
* DINFO* ioctls.
*/
#ifdef __cplusplus
extern "C" {
#endif
/* ioctl commands for devinfo driver */
/*
* Any combination of the following ORed together will take a snapshot
* of the device configuration data.
*/
/* private bits */
/* new public flag for the layered drivers framework */
/* new public flag for the hotplug framework */
/*
* Straight ioctl commands, not bitwise operation
*/
/*
* ioctl for taking a snapshot a single node and all nodes
*/
/* driver ops encoding */
/* property list enumeration */
#define DI_PROP_DRV_LIST 0
/* misc parameters */
#define DI_CACHE_SNAPSHOT_FLAGS \
/*
* multipath component definitions: Follows the registered component of
* the mpxio system.
*/
#define MULTIPATH_COMPONENT_NONE 0
/*
* devinfo driver snapshot data structure
*/
struct di_all {
};
struct di_devnm {
};
struct di_lnode;
struct di_link {
int count;
};
struct di_lnode {
/*
* public information describing a link endpoint
*/
/*
* di_link ptr to links comming into this node
* (this lnode is the target of these di_links)
*/
/*
* di_link ptr to links going out of this node
* (this lnode is the source of these di_links)
*/
/*
* di_lnode pointer to the next lnode associated with the
* same di_node
*/
};
/*
* offset to di_node structures
*/
/*
* offset to char strings of current node
*/
/*
* offset to property lists, private data, etc.
*/
/*
* misc values
*/
/*
* value attributes of current node
*/
/*
*/
/*
* devi_flags field
*/
/*
* offset to hotplug nodes.
*/
};
/*
* chain of ddi_minor_data structure
*/
struct di_minor {
};
typedef enum {
/*
* multipathing information structures
*/
struct di_path {
};
/*
* chain of hotplug information structures
*/
struct di_hp {
};
/*
* Flags for snap_state
*/
/*
* Flags for path_flags
*/
/*
* path properties
*/
struct di_path_prop {
};
/*
* Now the properties.
*/
struct di_prop {
};
/*
* Private data stuff for supporting prtconf.
* Allows one level of indirection of fixed sized obj or obj array.
* The array size may be an int member of the array.
*/
struct di_priv_format {
struct { /* ptrs to dereference */
};
struct di_priv_data {
int version;
int n_parent;
int n_driver;
};
/*
* structure for saving alias information
*/
struct di_alias {
};
/*
* structure passed in from ioctl
*/
struct dinfo_io {
};
#ifdef __cplusplus
}
#endif
#endif /* _SYS_DEVINFO_IMPL_H */