/*
* 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
*/
/*
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _IBDMA_IMPL_H
#define _IBDMA_IMPL_H
/*
*
* Device Management Agent private prototypes and structures.
*/
#ifdef __cpluplus
extern "C" {
#endif
enum {
};
/*
* Implementation of handle returned to consumer.
*/
typedef struct ibdma_hdl_impl_s {
/*
* Each I/O Controller slot for the I/O Unit.
*/
typedef struct ibdma_ioc_s {
/*
* Just to map handle back to slot number and hca
*/
int ii_slot;
/*
* Profile provided by the I/O Controller, must be stored
* in network order. Note that the profile indicates the
* number of service entries pointed to by ii_srvcs.
*/
} ibdma_ioc_t;
/*
* The ibdma_hca_t structure is only used internally by the
* IB DM Agent. It is created when the associated HCA is
* opened as part of initialization or as a result of a
* notification via IBTF. It is destroyed when the HCA
* is closed as part of fini processing or as a result of
* a notification via IBTF. The structure is not directly
* accessed by IBMF call-backs or the consumer API.
*/
typedef struct ibdma_port_s {
} ibdma_port_t;
typedef struct ibdma_hca_s {
/*
* Consumer handles associated with I/O Controllers
* that have registered with this I/O Unit.
*/
/*
* The I/O Unit that is presented to the IB Fabric.
* It is stored in network order.
*/
} ibdma_hca_t;
/*
* The IBDMA module state information created and initialized
* at _init() and freed at _fini().
*/
typedef struct ibdma_mod_state_s {
/*
* The HCA list lock is used protect the HCA list and
* is held during consumer routines (in place of a
* reference count) to ensure the HCA exists for the
* duration of it's use in the routine.
*/
/*
* Client API internal helpers
*/
typedef enum ibdma_ioc_state_e {
static void
#endif /* _IBDMA_IMPL_H */