예제 #1
0
파일: virfcp.c 프로젝트: RWTH-OS/libvirt
int
virFCReadRportValue(const char *rport,
                    const char *entry,
                    char **result)
{
    int ret = -1;
    char *buf = NULL, *p = NULL;

    if (virFileReadValueString(&buf, "%s/%s/%s",
                               SYSFS_FC_RPORT_PATH, rport, entry) < 0) {
        return -1;
    }

    if ((p = strchr(buf, '\n')))
        *p = '\0';

    if (VIR_STRDUP(*result, buf) < 0)
        goto cleanup;

    ret = 0;

 cleanup:
    VIR_FREE(buf);
    return ret;
}
예제 #2
0
파일: virnumamock.c 프로젝트: aruiz/libvirt
int
virNumaGetNodeCPUs(int node, virBitmapPtr *cpus)
{
    int ret = -1;
    char *cpulist = NULL;

    if (virFileReadValueString(&cpulist,
                               "%s/node/node%u/cpulist",
                               SYSFS_SYSTEM_PATH, node) < 0)
        return -1;

    *cpus = virBitmapParseUnlimited(cpulist);
    if (!*cpus)
        goto cleanup;

    ret = virBitmapCountBits(*cpus);
 cleanup:
    VIR_FREE(cpulist);
    return ret;
}
예제 #3
0
파일: virfcp.c 프로젝트: Antique/libvirt
int
virFCReadRportValue(const char *rport,
                    const char *entry,
                    char **result)
{
    VIR_AUTOFREE(char *) buf = NULL;
    char *p = NULL;

    if (virFileReadValueString(&buf, "%s/%s/%s",
                               SYSFS_FC_RPORT_PATH, rport, entry) < 0) {
        return -1;
    }

    if ((p = strchr(buf, '\n')))
        *p = '\0';

    if (VIR_STRDUP(*result, buf) < 0)
        return -1;

    return 0;
}