def nvmlSystemGetHicVersion():
    r"""
    /**
     * Retrieves the IDs and firmware versions for any Host Interface Cards (HICs) in the system.
     *
     * For S-class products.
     *
     * The \a hwbcCount argument is expected to be set to the size of the input \a hwbcEntries array.
     * The HIC must be connected to an S-class system for it to be reported by this function.
     *
     * @param hwbcCount                            Size of hwbcEntries array
     * @param hwbcEntries                          Array holding information about hwbc
     *
     * @return
     *         - \ref NVML_SUCCESS                 if \a hwbcCount and \a hwbcEntries have been populated
     *         - \ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized
     *         - \ref NVML_ERROR_INVALID_ARGUMENT  if either \a hwbcCount or \a hwbcEntries is NULL
     *         - \ref NVML_ERROR_INSUFFICIENT_SIZE if \a hwbcCount indicates that the \a hwbcEntries array is too small
     */
    nvmlReturn_t DECLDIR nvmlSystemGetHicVersion
    """
    c_count = c_uint(0)
    hics = None
    fn = _nvmlGetFunctionPointer("nvmlSystemGetHicVersion")

    # get the count
    ret = fn(byref(c_count), None)

    # this should only fail with insufficient size
    if ((ret != NVML_SUCCESS) and
        (ret != NVML_ERROR_INSUFFICIENT_SIZE)):
        raise NVMLError(ret)

    # if there are no hics
    if (c_count.value == 0):
        return []

    hic_array = c_nvmlHwbcEntry_t * c_count.value
    hics = hic_array()
    ret = fn(byref(c_count), hics)
    _nvmlCheckReturn(ret)
    return bytes_to_str(hics)
r"""
    /**
     * Retrieves the IDs and firmware versions for any Host Interface Cards (HICs) in the system.
     *
     * For S-class products.
     *
     * The \a hwbcCount argument is expected to be set to the size of the input \a hwbcEntries array.
     * The HIC must be connected to an S-class system for it to be reported by this function.
     *
     * @param hwbcCount                            Size of hwbcEntries array
     * @param hwbcEntries                          Array holding information about hwbc
     *
     * @return
     *         - \ref NVML_SUCCESS                 if \a hwbcCount and \a hwbcEntries have been populated
     *         - \ref NVML_ERROR_UNINITIALIZED     if the library has not been successfully initialized
     *         - \ref NVML_ERROR_INVALID_ARGUMENT  if either \a hwbcCount or \a hwbcEntries is NULL
     *         - \ref NVML_ERROR_INSUFFICIENT_SIZE if \a hwbcCount indicates that the \a hwbcEntries array is too small
     */
    nvmlReturn_t DECLDIR nvmlSystemGetHicVersion