Files @ d0a14f973771
Branch filter:

Location: vmkdrivers/BLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release/base/vmkapi_stress.h

unknown
ESXi-5.0-U1
/* **********************************************************
 * Copyright 2008 - 2009 VMware, Inc.  All rights reserved.
 * **********************************************************/

/*
 * @VMKAPIMOD_LICENSE@
 */

/*
 ***********************************************************************
 * Stress                                                         */ /**
 * \defgroup Stress Stress Options
 *
 * The stress option interfaces allow access to special environment
 * variables that inform code whether or not certain stress code
 * should be run.
 *
 * @{
 ***********************************************************************
 */

#ifndef _VMKAPI_STRESS_H_
#define _VMKAPI_STRESS_H_

/** \cond never */
#ifndef VMK_HEADER_INCLUDED_FROM_VMKAPI_H
#error This vmkapi file should never be included directly but only via vmkapi.h
#endif
/** \endcond never */

/*
 * Useful stress option names
 */
/** \cond nodoc */
#define VMK_STRESS_OPT_NET_GEN_TINY_ARP_RARP          "NetGenTinyArpRarp"
#define VMK_STRESS_OPT_NET_IF_CORRUPT_ETHERNET_HDR    "NetIfCorruptEthHdr"
#define VMK_STRESS_OPT_NET_IF_CORRUPT_RX_DATA         "NetIfCorruptRxData"
#define VMK_STRESS_OPT_NET_IF_CORRUPT_RX_TCP_UDP      "NetIfCorruptRxTcpUdp"
#define VMK_STRESS_OPT_NET_IF_CORRUPT_TX              "NetIfCorruptTx"
#define VMK_STRESS_OPT_NET_IF_FAIL_HARD_TX            "NetIfFailHardTx"
#define VMK_STRESS_OPT_NET_IF_FAIL_RX                 "NetIfFailRx"
#define VMK_STRESS_OPT_NET_IF_FAIL_TX_AND_STOP_QUEUE  "NetIfFailTxAndStopQueue"
#define VMK_STRESS_OPT_NET_IF_FORCE_HIGH_DMA_OVERFLOW "NetIfForceHighDMAOverflow"
#define VMK_STRESS_OPT_NET_IF_FORCE_RX_SW_CSUM        "NetIfForceRxSWCsum"
#define VMK_STRESS_OPT_NET_NAPI_FORCE_BACKUP_WORLDLET "NetNapiForceBackupWorldlet"
#define VMK_STRESS_OPT_NET_BLOCK_DEV_IS_SLUGGISH      "NetBlockDevIsSluggish"

#define VMK_STRESS_OPT_SCSI_ADAPTER_ISSUE_FAIL        "ScsiAdapterIssueFail"

#define VMK_STRESS_OPT_VMKLINUX_DROP_CMD_SCSI_DONE    "VmkLinuxDropCmdScsiDone"
#define VMK_STRESS_OPT_VMKLINUX_ABORT_CMD_FAILURE     "VmkLinuxAbortCmdFailure"

#define VMK_STRESS_OPT_USB_BULK_DELAY_PROCESS_URB        "USBBulkDelayProcessURB"
#define VMK_STRESS_OPT_USB_BULK_URB_FAKE_TRANSIENT_ERROR "USBBulkURBFakeTransientError"
#define VMK_STRESS_OPT_USB_DELAY_PROCESS_TD              "USBDelayProcessTD"
#define VMK_STRESS_OPT_USB_FAIL_GP_HEAP_ALLOC            "USBFailGPHeapAlloc"
#define VMK_STRESS_OPT_USB_STORAGE_DELAY_SCSI_DATA_PHASE "USBStorageDelaySCSIDataPhase"
#define VMK_STRESS_OPT_USB_STORAGE_DELAY_SCSI_TRANSFER "USBStorageDelaySCSITransfer"
/** \endcond nodoc */

/**
 * \brief Opaque stress option handle.
 */
typedef vmk_uint64 vmk_StressOptionHandle;

/*
 ***********************************************************************
 * vmk_StressOptionOpen --                                        */ /**
 *
 * \ingroup Stress
 * \brief Open a handle to stress option
 *
 * \note  This function will not block.
 *
 * \param[in]  name            A stress option name
 * \param[out] handle          Handle to the stress option
 *
 * \retval     VMK_OK          Successful
 * \retval     VMK_BAD_PARAM   The stress option id was invalid
 *
 ***********************************************************************
 */
VMK_ReturnStatus vmk_StressOptionOpen(
   const char *name,
   vmk_StressOptionHandle *handle);

/*
 ***********************************************************************
 * vmk_StressOptionClose --                                       */ /**
 *
 * \ingroup Stress
 * \brief Close a handle to stress option
 *
 * \note  This function will not block.
 *
 * \param[in]  handle          Handle to the stress option
 *
 * \retval     VMK_OK          Successful
 * \retval     VMK_BAD_PARAM   The stress option handle was invalid
 *
 ***********************************************************************
 */
VMK_ReturnStatus vmk_StressOptionClose(
   vmk_StressOptionHandle handle);

/*
 ***********************************************************************
 * vmk_StressOptionValue --                                       */ /**
 *
 * \ingroup Stress
 * \brief Get stress option value
 *
 * \note  This function will not block.
 *
 * \param[in]  handle          Handle to the stress option
 * \param[out] result          Stress option value
 *
 * \retval     VMK_OK          Successful
 * \retval     VMK_BAD_PARAM   The stress option handle was invalid
 *
 ***********************************************************************
 */
VMK_ReturnStatus vmk_StressOptionValue(
   vmk_StressOptionHandle handle,
   vmk_uint32 *result);

/*
 ***********************************************************************
 * vmk_StressOptionCounter --                                     */ /**
 *
 * \ingroup Stress
 * \brief Increment stress option counter every Nth (value)
 *        randomized call if the option is enabled (value > 0)
 *
 * \note  This function will not block.
 *
 * \param[in]  handle          Handle to the stress option
 * \param[out] result          VMK_TRUE if counter was incremented,
 *                             VMK_FALSE otherwise
 *
 * \retval     VMK_OK          Successful
 * \retval     VMK_BAD_PARAM   The stress option handle was invalid
 *
 ***********************************************************************
 */
VMK_ReturnStatus vmk_StressOptionCounter(
   vmk_StressOptionHandle handle,
   vmk_Bool *result);

#endif /* _VMKAPI_STRESS_H_ */
/** @} */