Files @ d6b9b2ac5869
Branch filter:

Location: vmkdrivers/BLD/build/HEADERS/vmkapi-current-all-public-bincomp/vmkernel64/release/lib/vmkapi_string.h - annotation

unknown
ESXi-5.5-U2
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
763922b5834e
/* **********************************************************
 * Copyright 2010 VMware, Inc.  All rights reserved.
 * **********************************************************/

/*
 * @VMKAPIMOD_LICENSE@
 */

/*
 ***********************************************************************
 * String                                                         */ /**
 * \addtogroup Lib
 * @{
 * \defgroup String Interfaces
 *
 * @{
 ***********************************************************************
 */

#ifndef _VMKAPI_STRING_H_
#define _VMKAPI_STRING_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 */

#include <stdarg.h>


/*
 ***********************************************************************
 * vmk_StringCat --                                               */ /**
 *
 * \brief Appends the source string to the end of the destination string. 
 *
 * \note  This function will not block.
 *
 * \param[in] dst    String to copy to.
 * \param[in] src    String to append from.
 * \param[in] dstLen Length of destination buffer.
 *
 * \note dst will always be nul terminated so long as dstLen is greater
 *       than zero.
 *
 * \retval VMK_OK             The string was successfully concatenated.
 * \retval VMK_LIMIT_EXCEEDED The source string was too long to be
 *                            copied fully into the destination.  As
 *                            much of the source string as possible was
 *                            concatenated.
 * \retval VMK_BAD_PARAM      The source string or destination buffer
 *                            is not valid.
 *
 ***********************************************************************
 */
VMK_ReturnStatus vmk_StringCat(
   char *dst,
   const char *src,
   vmk_ByteCount dstLen);

/*
 ***********************************************************************
 * vmk_StringCopy --                                              */ /**
 *
 * \brief Copy a string up to a maximum number of bytes.
 *
 * \param[out] dst      String to copy to.
 * \param[in]  src      String to copy from.
 * \param[in]  dstLen   Maximum number of bytes to copy into dst.
 *
 * \note dst will always be be nul terminated so long as dstLen is
 *       greater than zero.
 * \note  This function will not block.
 *
 * \retval VMK_OK             The string was successfully copied.
 * \retval VMK_LIMIT_EXCEEDED The source string was too long to be
 *                            copied fully into the destination.  As
 *                            much of the source string as possible was
 *                            copied.
 * \retval VMK_BAD_PARAM      The source string or destination buffer
 *                            is not valid.
 *
 ***********************************************************************
 */
VMK_ReturnStatus vmk_StringCopy(
   char *dst,
   const char *src,
   vmk_ByteCount dstLen);

/*
 ***********************************************************************
 * vmk_StringLCopy --                                             */ /**
 *
 * \brief Copy a string and ensure nul termination.
 *
 * \param[out] dst    String to copy to.
 * \param[in]  src    String to copy from.
 * \param[in]  dstLen Maximum number of bytes to store a string in dst.
 * \param[out] outLen Number of bytes necessary.  Optional: may pass
 *                    NULL.
 *
 * \note dst will always be be nul terminated so long as dstLen is
 *       greater than zero.
 * \note outLen will always be set to the number of bytes needed to
 *       successfully copy the src string, even if that copy is not
 *       successful, not including the nul terminator.
 * \note  This function will not block.
 *
 * \retval VMK_OK             The string was successfully copied.
 * \retval VMK_LIMIT_EXCEEDED The source string was too long to be
 *                            copied fully into the destination.  As
 *                            much of the source string as possible was
 *                            copied.
 * \retval VMK_BAD_PARAM      The source string or destination buffer
 *                            is not valid.
 *
 ***********************************************************************
 */
VMK_ReturnStatus vmk_StringLCopy(
   char *dst,
   const char *src,
   vmk_ByteCount dstLen,
   vmk_ByteCount *outLen);

/*
 ***********************************************************************
 * vmk_StringFormat --                                            */ /**
 *
 * \brief Formats the provided format string and arguments into the
 *        destination buffer, up to a maximum bound.
 *
 * \param[in]  str      Buffer in which to place output.
 * \param[in]  strLen   Maximum number of bytes to output.
 * \param[out] outLen   Number of bytes necessary to format this string,
 *                      not including the terminating nul character.
 *                      Optional: may pass NULL.
 * \param[in]  format   Printf-style format string.
 *
 * \note str will always be be nul terminated so long as strLen is
 *       greater than zero.
 * \note outLen will always be set to the number of bytes needed to
 *       successfully format the src string, even if that formatting
 *       is not successful, not including the nul terminator.
 * \printformatstringdoc
 * \note  This function will not block.
 *
 * \retval VMK_OK             The string was successfully formatted.
 * \retval VMK_LIMIT_EXCEEDED The source string was too long to be
 *                            formatted fully into the destination.  As
 *                            much of the specified format string as
 *                            possible was formatted.
 * \retval VMK_BAD_PARAM      The format string or destination buffer
 *                            is not valid.
 *
 ***********************************************************************
 */
VMK_ReturnStatus vmk_StringFormat(
   char *str,
   vmk_ByteCount strLen,
   vmk_ByteCount *outLen,
   const char *format,
   ...)
VMK_ATTRIBUTE_PRINTF(4,5);

/*
 ***********************************************************************
 * vmk_StringVFormat --                                            */ /**
 *
 * \brief Formats the provided format string and varargs into the
 *        destination buffer, up to a maximum bound.
 *
 * \param[in]  str      Buffer in which to place output.
 * \param[in]  strLen   Maximum number of bytes to output.
 * \param[out] outLen   Number of bytes necessary to format this string,
 *                      not including the terminating nul character.
 *                      Optional: may pass NULL.
 * \param[in]  format   Printf-style format string.
 * \param[in]  ap       Varargs for format.
 *
 * \note str will always be be nul terminated so long as strLen is
 *       greater than zero.
 * \note outLen will always be set to the number of bytes needed to
 *       successfully format the src string, even if that formatting
 *       is not successful, not including the nul terminator.
 * \printformatstringdoc
 * \note  This function will not block.
 *
 * \retval VMK_OK             The string was successfully formatted.
 * \retval VMK_LIMIT_EXCEEDED The source string was too long to be
 *                            formatted fully into the destination.  As
 *                            much of the specified format string as
 *                            possible was formatted.
 * \retval VMK_BAD_PARAM      The format string or destination buffer
 *                            is not valid.
 *
 ***********************************************************************
 */
VMK_ReturnStatus vmk_StringVFormat(
   char *str,
   vmk_ByteCount strLen,
   vmk_ByteCount *outLen,
   const char *format,
   va_list ap);

#endif /* _VMKAPI_STRING_H_ */
/** @} */
/** @} */