transport_services.c revision fcf3ce441efd61da9bb2884968af01cb7c1452cc
/*
* 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
* or http://www.opensolaris.org/os/licensing.
* 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 2008 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#include "transport_services.h"
#ifdef _KERNEL
#include <sys/sunddi.h>
#else
#include <stdlib.h>
#endif
/* For now there is only one HBA instance (i.e., the software initiator) */
static transport_services_t *registered_transport = NULL;
/* ARGSUSED */
void transport_reg(transport_services_t *transport, uint8_t *isid) {
ASSERT(registered_transport == NULL);
/* Associate the transport service structure with the given ISID */
registered_transport = transport;
}
/* ARGSUSED */
void transport_dereg(uint8_t *isid) {
ASSERT(registered_transport != NULL);
/* Look up the registered transport service and deregister it */
if (registered_transport) {
registered_transport = NULL;
}
}
/* ARGSUSED */
transport_services_t *transport_lookup(uint8_t *lhba_handle) {
/*
* Until iSCSI DDI comes along the transport service only supports one
* HBA instance (i.e., the software initiator). Hence we always
* return the registered transport regardless of the LHBA handle.
*/
return (registered_transport);
}