sol_umad.h revision 448bf8594153765bb5fce82a8888e01e3f6c3bad
/*
* 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
*/
/*
*/
#ifdef __cplusplus
extern "C" {
#endif
/*
* map between minor node #s and HCA indexes and Port #s. This leaves
* room for 16 boards with up to 16 ports each.
*/
/* UMAD KA instance, only one instance allowed */
#define UMAD_INSTANCE 0
typedef struct umad_port_info_s umad_port_info_t;
/*
* User context. One per open file descriptor.
*/
typedef struct umad_uctx_s {
struct pollhead uctx_pollhead;
} umad_uctx_t;
typedef struct umad_agent_s {
/* registration */
/* this agent belongs. */
int agent_outstanding_msgs; /* # of msgs waiting */
/* for a response */
int agent_flags;
} umad_agent_t;
enum umad_agent_flags {
UMAD_AGENT_UNREGISTERING = 1 << 0,
};
typedef struct umad_hca_info_s {
struct umad_port_info_s {
unsigned int port_minor_name; /* number in device name. */
int port_issm_open_cnt;
bool port_has_umad_minor_node;
bool port_has_issm_minor_node;
};
typedef struct umad_info_s {
} umad_info_t;
typedef struct ib_umad_msg_s {
struct ib_user_mad_hdr umad_msg_hdr;
/*
* A UMAD we send is linked to a user context.
*/
struct umad_send {
};
struct ibmf_reg_info {
unsigned int ibmf_reg_refcnt;
unsigned int ibmf_flags;
};
/* Flags values for ibmf_flags above */
enum ibmf_flag_values {
UMAD_IBMF_UNREGISTERING = 1 << 0
};
static inline int
{
}
void **resultp);
int *lengthp);
umad_uctx_t *uctx);
umad_uctx_t *uctx);
#ifdef __cplusplus
}
#endif
#endif /* _SYS_IB_CLIENTS_OF_SOL_UMAD_SOL_UMAD_H */