vdsk_mailbox.h revision 17cadca83cc82e37ff517ea2783eb4bfcc07b950
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * CDDL HEADER START
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * The contents of this file are subject to the terms of the
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * Common Development and Distribution License (the "License").
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * You may not use this file except in compliance with the License.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * See the License for the specific language governing permissions
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * and limitations under the License.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * When distributing Covered Code, include this CDDL HEADER in each
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * If applicable, add the following below this CDDL HEADER, with the
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * fields enclosed by brackets "[]" replaced with your own identifying
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * information: Portions Copyright [yyyy] [name of copyright owner]
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * CDDL HEADER END
17cadca83cc82e37ff517ea2783eb4bfcc07b950lm * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * Use is subject to license terms.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#pragma ident "%Z%%M% %I% %E% SMI"
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppoextern "C" {
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * This header file contains the private LDoms Virtual Disk (vDisk) mailbox
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * definitions common to both the server (vds) and the client (vdc)
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * Definition of the various states the vDisk state machine can
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * be in during the handshake between vdc and vds.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppotypedef enum vd_state {
17cadca83cc82e37ff517ea2783eb4bfcc07b950lm * Definition of the various types of media that can be exported by
17cadca83cc82e37ff517ea2783eb4bfcc07b950lm * the vDisk server. If we cannot work out what the media type is
17cadca83cc82e37ff517ea2783eb4bfcc07b950lm * we default to calling it VD_MEDIA_FIXED.
17cadca83cc82e37ff517ea2783eb4bfcc07b950lmtypedef enum vd_media {
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * vDisk device attributes information message.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * tag.msgtype == VIO_TYPE_CTRL
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * tag.submsgtype = VIO_SUBTYPE_{INFO|ACK|NACK}
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * tag.subtype_env == VIO_ATTR_INFO
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppotypedef struct vd_attr_msg {
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo /* Common tag */
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo /* vdisk-attribute-specific payload */
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo uint8_t vdisk_type; /* disk, slice, read-only, etc. */
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo uint64_t operations; /* bit-field of server supported ops */
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo uint64_t max_xfer_sz; /* maximum block transfer size */
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * vDisk inband descriptor message.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * For clients that do not use descriptor rings, the descriptor contents
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo * are sent as part of an inband message.
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppotypedef struct vd_dring_inband_msg {
1ae0874509b6811fdde1dfd46f0d93fd09867a3fheppo#endif /* _VDSK_MAILBOX_H */