/*
* 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 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#pragma ident "%Z%%M% %I% %E% SMI"
/*
* SCSI simulator.
*
* For testing purposes, we need a way to simulate arbitrary SCSI responses. A
* completely flexible SCSI simulation language would be a large undertaking,
* given the number of possible outcomes. Instead, we opt for the simpler route
* of using a shared object which implements versions of these functions.
*
* If a shared object doesn't implement a given function, or if the function
* returns non-zero, then the simulator will provide a suitable response
* indicating the functionality isn't supported.
*/
#include <libdiskstatus.h>
#include "ds_scsi.h"
#include "ds_scsi_sim.h"
static int
{
if (ret != 0) {
ret = -1;
}
return (ret);
}
void *, int *);
int
{
if (dscsi_mode_sense != NULL)
}
scsi_ms_header_g1_t *, void *, int *);
int
{
"scsi_mode_sense_10");
if (dscsi_mode_sense_10 != NULL)
}
void *, int *);
int
{
"scsi_mode_select"));
if (dscsi_mode_select != NULL)
}
scsi_ms_header_g1_t *, void *, int *);
int
{
"scsi_mode_select_10");
if (dscsi_mode_select_10 != NULL)
}
int
{
if (dscsi_log_sense != NULL)
}
int
{
"scsi_request_sense");
if (dscsi_request_sense != NULL)
}