Guest SDK Library

The Guest SDK library now offers two new functions, get and free.

VMGuestLib_StatGet

/* Semi-structured hypervisor statistics collection, for troubleshooting. */ VMGuestLibError VMGuestLib_StatGet(const char *encoding, // IN const char *stat, // IN char **reply, // OUT size_t *replySize); // OUT
  • encoding
    text
    or “xml” or “json” or “yaml” – if not specified, “text” is the default.
  • stat
    – the statistic to print. See examples below.
  • reply
    – a pointer to be set with a buffer containing the formatted reply. All current formats return null-terminated C strings, but future formats may not; the caller should treat the buffer as binary unless the format is known. The buffer must later be freed by a call to
    VMGuestLib_StatFree()
    .
  • replySize
    – a pointer to receive the size of data in the buffer.

VMGuestLib_StatFree

To free the memory returned by
VMGuestLib_StatGet
, call
VMGuestLib_StatFree()
.
void
VMGuestLib_StatFree
(char *reply, size_t replySize);
  • reply
    – the pointer that was supplied by the
    reply
    parameter of
    VMGuestLib_StatGet()
    .
  • replySize
    – the size that was supplied by the
    replySize
    parameter of
    VMGuestLib_StatGet()
    .
C code with StatGet and StatFree functions shows these two function calls used in a sample routine:
C code with StatGet and StatFree functions
/* * Retrieves semi-structured statistics on ESXi host. */ static int StatGetRaw(const char *encoding, // IN const char *stat, // IN const char *param) // IN { int exitStatus = EXIT_SUCCESS; VMGuestLibError glError; char *result = NULL; size_t resultSize = 0; char *arg = g_strdup_printf("%s %s", stat, param); glError = VMGuestLib_StatGet(encoding, arg, &result, &resultSize); if (glError != VMGUESTLIB_ERROR_SUCCESS) { exitStatus = EX_TEMPFAIL; } else { g_print("%*s", (int)resultSize, result); } VMGuestLib_StatFree(result, resultSize); g_free(arg); return exitStatus; }