/***************************************************************************
* Copyright 2009 VMware, Inc. All rights reserved.
***************************************************************************/
/*
* @VMKAPIMOD_LICENSE@
*/
/*
* vmkapi_scsi_vmware.h --
*
* Defines some of the VMware vendor specific SCSI interfaces
*
*/
#ifndef _VMKAPI_SCSI_VMWARE_H_
#define _VMKAPI_SCSI_VMWARE_H_
#ifndef VMK_HEADER_INCLUDED_FROM_VMKAPI_H
#error This vmkapi file should never be included directly but only via vmkapi.h
#endif
#include "scsi/vmkapi_scsi.h"
/*
***********************************************************************
* vmk_ScsiSetATSCmdStatus -- */ /**
*
* \ingroup SCSI
* \brief Set a command's ATS status
*
* On I/O completion, set the command's ATS status.
*
* \note This function will not block.
*
* \note Spin locks can be held while calling into this function
*
* \param[in] vmkCmd Scsi command whose status to set
* \param[in] miscompare Boolean to indicate whether the command's
* status should be set to
* VMK_SCSI_PLUGIN_ATS_MISCOMPARE
*
* \pre if vmkCmd does not already indicate that the command failed with a
* check condition, this function is a no-op.
*
***********************************************************************
*/
static inline void
vmk_ScsiSetATSCmdStatus(vmk_ScsiCommand *vmkCmd, vmk_Bool miscompare)
{
if (vmk_ScsiCmdStatusIsCheck(vmkCmd->status)) {
vmkCmd->status.plugin = miscompare ? VMK_SCSI_PLUGIN_ATS_MISCOMPARE :
VMK_SCSI_PLUGIN_GOOD;
}
}
#endif //_VMKAPI_SCSI_VMWARE_H_