/*
* 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
* 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 (c) 2004-2011 Emulex. All rights reserved.
* Use is subject to license terms.
*/
#include <emlxs.h>
/* Required for EMLXS_CONTEXT in EMLXS_MSGF calls */
#if (EMLXS_MODREV >= EMLXS_MODREV3)
typedef struct
{
#endif /* >= EMLXS_MODREV3 */
/* ARGSUSED */
static void
{
/* Send the pkt now */
if (rval != FC_SUCCESS) {
"Deferred pkt_send failed: status=%x pkt=%p", rval,
pkt);
} else {
}
}
return;
} /* emlxs_pkt_thread() */
extern int32_t
{
if (now) {
} else {
/* Spawn a thread to send the pkt */
rval = FC_SUCCESS;
}
return (rval);
} /* emlxs_pkt_send() */
extern void
{
if (pkt->pkt_datalen) {
}
if (pkt->pkt_rsplen) {
}
if (pkt->pkt_cmdlen) {
}
#if (EMLXS_MODREV >= EMLXS_MODREV3)
sizeof (emlxs_pkt_cookie_t)));
#else
#endif /* >= EMLXS_MODREV3 */
return;
} /* emlxs_pkt_free() */
/* Default pkt callback routine */
extern void
{
return;
} /* emlxs_pkt_callback() */
extern fc_packet_t *
{
unsigned long real_len;
#if (EMLXS_MODREV >= EMLXS_MODREV3)
pkt_size =
sizeof (fc_packet_t) + sizeof (emlxs_buf_t) +
sizeof (emlxs_pkt_cookie_t);
#else
#endif /* >= EMLXS_MODREV3 */
/* Allocate some space */
return (NULL);
}
#if (EMLXS_MODREV >= EMLXS_MODREV3)
sizeof (emlxs_buf_t));
#endif /* >= EMLXS_MODREV3 */
if (cmdlen) {
/* Allocate the cmd buf */
cmdlen = 0;
rsplen = 0;
datalen = 0;
goto failed;
}
cmdlen = 0;
rsplen = 0;
datalen = 0;
goto failed;
}
cmdlen = 0;
rsplen = 0;
datalen = 0;
goto failed;
}
#if (EMLXS_MODREV >= EMLXS_MODREV3)
#else
#endif /* >= EMLXS_MODREV3 */
{
cmdlen = 0;
rsplen = 0;
datalen = 0;
goto failed;
}
#if (EMLXS_MODREV >= EMLXS_MODREV3)
#else
if (num_cookie != 1)
#endif /* >= EMLXS_MODREV3 */
{
rsplen = 0;
datalen = 0;
goto failed;
}
}
if (rsplen) {
/* Allocate the rsp buf */
rsplen = 0;
datalen = 0;
goto failed;
}
rsplen = 0;
datalen = 0;
goto failed;
}
rsplen = 0;
datalen = 0;
goto failed;
}
#if (EMLXS_MODREV >= EMLXS_MODREV3)
#else
#endif /* >= EMLXS_MODREV3 */
{
rsplen = 0;
datalen = 0;
goto failed;
}
#if (EMLXS_MODREV >= EMLXS_MODREV3)
#else
if (num_cookie != 1)
#endif /* >= EMLXS_MODREV3 */
{
datalen = 0;
goto failed;
}
}
/* Allocate the data buf */
if (datalen) {
/* Allocate the rsp buf */
datalen = 0;
goto failed;
}
datalen = 0;
goto failed;
}
datalen = 0;
goto failed;
}
#if (EMLXS_MODREV >= EMLXS_MODREV3)
#else
&num_cookie) != DDI_DMA_MAPPED)
#endif /* >= EMLXS_MODREV3 */
{
datalen = 0;
goto failed;
}
#if (EMLXS_MODREV >= EMLXS_MODREV3)
#else
if (num_cookie != 1)
#endif /* >= EMLXS_MODREV3 */
{
goto failed;
}
}
return (pkt);
if (datalen) {
}
if (rsplen) {
}
if (cmdlen) {
}
if (pkt) {
}
return (NULL);
} /* emlxs_pkt_alloc() */