vnet_gen.h revision 844e62a3ec8c8ff5175bb35d1c38446e060730f6
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao * CDDL HEADER START
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao * The contents of this file are subject to the terms of the
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao * Common Development and Distribution License (the "License").
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao * You may not use this file except in compliance with the License.
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao * See the License for the specific language governing permissions
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao * and limitations under the License.
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao * When distributing Covered Code, include this CDDL HEADER in each
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao * If applicable, add the following below this CDDL HEADER, with the
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao * fields enclosed by brackets "[]" replaced with your own identifying
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao * information: Portions Copyright [yyyy] [name of copyright owner]
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao * CDDL HEADER END
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao * Use is subject to license terms.
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao#pragma ident "%Z%%M% %I% %E% SMI"
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao#define VGEN_SUCCESS (0) /* successful return */
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao#define VGEN_FAILURE (-1) /* unsuccessful return */
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao#define VGEN_NUM_VER 1 /* max # of vgen versions */
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao/* vgen_t flags */
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao#define KMEM_FREE(_p) kmem_free((_p), sizeof (*(_p)))
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao#define VGEN_INIT_MCTAB_SIZE 16 /* initial size of multicast table */
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao/* channel flags */
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao/* transmit return values */
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao#define VGEN_TX_SUCCESS 0 /* transmit success */
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao#define VGEN_TX_FAILURE 1 /* transmit failure */
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao#define VGEN_TX_NORESOURCES 2 /* out of tbufs/txds */
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao/* private descriptor flags */
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao#define VGEN_PRIV_DESC_FREE 0x0 /* desc is available */
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao#define VGEN_PRIV_DESC_BUSY 0x1 /* desc in use */
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao#define LDC_TO_VNET(ldcp) ((ldcp)->portp->vgenp->vnetp)
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao#define LDC_TO_VGEN(ldcp) ((ldcp)->portp->vgenp)
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao/* receive thread flags */
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao#define VGEN_WTHR_RUNNING 0x01 /* worker thread running */
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao#define VGEN_WTHR_DATARCVD 0x02 /* data received */
b5a2d8455dfa3190fc977c4bec53e91c99012767Hai-May Chao#define VGEN_WTHR_STOP 0x04 /* stop worker thread request */
typedef struct vgen_priv_desc {
* Handshake parameters (per vio_mailbox.h) of each ldc end point, used
typedef struct vgen_handshake_params {
typedef struct vgen_ver {
} vgen_ver_t;
typedef struct vgen_stats {
} vgen_stats_t;
typedef struct vgen_kstats {
typedef struct vgen_ldc {
} vgen_ldc_t;
typedef struct vgen_ldclist_s {
typedef struct vgen_port {
} vgen_port_t;
typedef struct vgen_portlist {
typedef struct vgen {
} vgen_t;
#ifdef __cplusplus