vmkdrivers/BLD/build/HEADERS/vmkapi-current-all-public-bincomp/generic/release/lib/vmkapi_name.h
2015-10-23 18:39:55 -04:00

120 lines
3.4 KiB
C

/* **********************************************************
* Copyright 2010 VMware, Inc. All rights reserved.
* **********************************************************/
/*
* @VMKAPIMOD_LICENSE@
*/
/*
***********************************************************************
* Name */ /**
* \addtogroup Lib
* @{
* \defgroup Name Names for kernel objects.
*
* @{
***********************************************************************
*/
#ifndef _VMKAPI_NAME_H_
#define _VMKAPI_NAME_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 Maximum length for the name of varous kernel objects.
*/
#define VMK_MISC_NAME_MAX 32
/**
* \brief Name of a kernel object.
*
* The name must be NUL-terminated.
*/
typedef struct vmk_Name {
char string[VMK_MISC_NAME_MAX];
} vmk_Name;
/*
***********************************************************************
* vmk_NameInitialize -- */ /**
*
* \brief Initialize a vmk_Name from a string literal.
*
* \note This function will not block.
*
* \param[out] name Name to be used for a kernel object.
* \param[in] string String to initialize name to.
*
* \retval VMK_OK The name was successfully initialized.
* \retval VMK_LIMIT_EXCEEDED string was too long to fit in name.
*
***********************************************************************
*/
VMK_ReturnStatus vmk_NameInitialize(vmk_Name *name, const char *string);
/*
***********************************************************************
* vmk_NameFormat -- */ /**
*
* \brief Creates a name from a format string and arguments.
*
* \note This function will not block.
*
* \printformatstringdoc
*
* \param[out] name Name to receive output.
* \param[in] format Format string
*
* \retval VMK_OK The name was successfully formatted.
* \retval VMK_LIMIT_EXCEEDED The resulting name was too long.
*
***********************************************************************
*/
VMK_ReturnStatus vmk_NameFormat(vmk_Name *name, const char *format, ...)
VMK_ATTRIBUTE_PRINTF(2, 3);
/*
***********************************************************************
* vmk_NameToString -- */ /**
*
* \brief Returns a pointer to the string for a name.
*
* \note This function will not block.
*
* \param[in] name Name to convert.
*
* \retval A string for the name.
*
***********************************************************************
*/
const char * vmk_NameToString(const vmk_Name *name);
/*
***********************************************************************
* vmk_NameCopy -- */ /**
*
* \brief Copies a source name to a destination name.
*
* \note This function will not block.
*
* src is copied to dst. No error checking is performed, so if
* src is an invalid name, dst will also be an invalid name.
*
* \param[out] dst Copy destination.
* \param[in] src Name to copy.
*
***********************************************************************
*/
void vmk_NameCopy(vmk_Name *dst, vmk_Name *src);
#endif /* _VMKAPI_TYPES_H_ */
/** @} */
/** @} */