iser.c revision 1d73e59f8caac41c539211070dbc51318da5c71e
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire * CDDL HEADER START
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire * The contents of this file are subject to the terms of the
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire * Common Development and Distribution License (the "License").
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire * You may not use this file except in compliance with the License.
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire * See the License for the specific language governing permissions
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire * and limitations under the License.
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire * When distributing Covered Code, include this CDDL HEADER in each
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire * If applicable, add the following below this CDDL HEADER, with the
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire * fields enclosed by brackets "[]" replaced with your own identifying
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire * information: Portions Copyright [yyyy] [name of copyright owner]
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire * CDDL HEADER END
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
2b24ab6b3865caeede9eeb9db6b83e1d89dcd1eaSebastien Roy * Use is subject to license terms.
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire * DDI and core routines for Solaris iSER implementation.
ceb97a6a3232437e1f0b4c6b8604bc1b4245ccc5amaguire/* set B_TRUE for console logging */
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire/* Driver functions */
ceb97a6a3232437e1f0b4c6b8604bc1b4245ccc5amaguirestatic int iser_attach(dev_info_t *, ddi_attach_cmd_t);
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguirestatic int iser_detach(dev_info_t *, ddi_detach_cmd_t);
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguirestatic int iser_getinfo(dev_info_t *, ddi_info_cmd_t, void *, void **);
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguirestatic int iser_ioctl(dev_t, int, intptr_t, int, cred_t *, int *);
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire/* static int iser_close(dev_t, int, int, cred_t *); */
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire/* Char/Block operations */
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire/* Device operations */
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire 0, /* refcnt */
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire/* Module Driver Info */
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire#define ISER_NAME_VERSION "iSCSI Extensions for RDMA"
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire/* Module Linkage */
e7ad388adbf175c15b5cb11584f1b92685ed77fcamaguire iser_state = kmem_zalloc(sizeof (iser_state_t), KM_SLEEP);
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire * iser_attach()
ef2c19a1d5242688ccc42f46886fcc495f8e1141amaguire /* Initialize the open refcnt and it's lock */
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire mutex_init(&iser_state->is_refcnt_lock, NULL, MUTEX_DRIVER,
a192e900f6d2b0e1a822e3252c0dfd795ed49d76amaguire /* initialize iSER as IB service */
(void) iser_ib_fini();
return (DDI_FAILURE);
return (DDI_SUCCESS);
case DDI_RESUME:
return (DDI_FAILURE);
return (DDI_FAILURE);
return (DDI_FAILURE);
switch (cmd) {
case DDI_DETACH:
return (DDI_FAILURE);
return (DDI_SUCCESS);
case DDI_SUSPEND:
return (DDI_FAILURE);
return (DDI_FAILURE);
switch (cmd) {
case DDI_INFO_DEVT2DEVINFO:
return (DDI_SUCCESS);
case DDI_INFO_DEVT2INSTANCE:
return (DDI_SUCCESS);
return (DDI_FAILURE);
int status;
return (ENXIO);
return (DDI_SUCCESS);
return (DDI_SUCCESS);
int status;
int *rvalp)
return (DDI_SUCCESS);