Files
@ d0a14f973771
Branch filter:
Location: vmkdrivers/BLD/build/HEADERS/vmkapi-current-all-public/vmkernel64/release/core/vmkapi_lock_domain.h
d0a14f973771
3.0 KiB
text/x-chdr
ESXi-5.0-U1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | /* **********************************************************
* Copyright 2010 VMware, Inc. All rights reserved.
* **********************************************************/
/*
* @VMKAPIMOD_LICENSE@
*/
/*
******************************************************************************
* Lock Domains */ /**
*
* \addtogroup Core
* @{
* \defgroup LockDomains Lock Domains
* @{
*
* Lock domains can be used to implement a local lock ranking scheme within one
* or more modules. All spinlocks that are created with the same lock domain ID
* will be rank checked against each other.
*
******************************************************************************
*/
#ifndef _VMKAPI_CORE_LOCKDOMAIN_H_
#define _VMKAPI_CORE_LOCKDOMAIN_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 */
/**
* \brief Lock Domain ID
*/
struct vmkLockDomainInt;
typedef struct vmkLockDomainInt *vmk_LockDomainID;
/** Invalid domain ID */
#define VMK_LOCKDOMAIN_INVALID ((vmk_LockDomainID)-1)
/*
******************************************************************************
* vmk_LockDomainCreate */ /**
*
* \brief Create a lock domain
*
* Allocates a lock domain from the given heap and initializes it.
*
* \note This function will not block
*
* \param[in] moduleID Module ID of the caller
* \param[in] heapID Heap to allocate the domain from
* \param[in] name Name of the domain
* \param[out] domain ID of the newly created domain
*
* \return VMK_OK if the domain was successfully created, error code otherwise
*
******************************************************************************
*/
VMK_ReturnStatus
vmk_LockDomainCreate(vmk_ModuleID moduleID,
vmk_HeapID heapID,
vmk_Name *name,
vmk_LockDomainID *domain);
/*
******************************************************************************
* vmk_LockDomainDestroy */ /**
*
* \brief Destroy a domain previously created via vmk_LockDomainCreate
*
* Destroy the given domain and free the allocated memory
*
* \note This function will not block
*
* \param[in] domain Domain ID
*
******************************************************************************
*/
void
vmk_LockDomainDestroy(vmk_LockDomainID domain);
/*
******************************************************************************
* vmk_LockDomainAllocSize */ /**
*
* \brief Size that of the allocation that will be done by vmk_LockDomainCreate
*
* \note This function will not block
*
* \result Allocation size
*
******************************************************************************
*/
vmk_ByteCountSmall
vmk_LockDomainAllocSize(void);
#endif
/** @} */
/** @} */
|