查询磁盘吞吐量流程(2)

来源:互联网 发布:virtualbox源码 编辑:程序博客网 时间:2024/06/06 20:17

static int
xenUnifiedDomainBlockStats (virDomainPtr dom, const char *path,
                            struct _virDomainBlockStats *stats)
{
    GET_PRIVATE (dom->conn);

    if (priv->opened[XEN_UNIFIED_HYPERVISOR_OFFSET])
        return xenHypervisorDomainBlockStats (dom, path, stats);

    xenUnifiedError(VIR_ERR_NO_SUPPORT, __FUNCTION__);
    return -1;
}

int
xenHypervisorDomainBlockStats (virDomainPtr dom,
                               const char *path,
                               struct _virDomainBlockStats *stats)
{
#ifdef __linux__
    xenUnifiedPrivatePtr priv;
    int ret;

    priv = (xenUnifiedPrivatePtr) dom->conn->privateData;
    xenUnifiedLock(priv);
    /* Need to lock because it hits the xenstore handle :-( */
    ret = xenLinuxDomainBlockStats (priv, dom, path, stats);

int
xenLinuxDomainBlockStats (xenUnifiedPrivatePtr priv,
                          virDomainPtr dom,
                          const char *path,
                          struct _virDomainBlockStats *stats)
{
    int device = xenLinuxDomainDeviceID(dom->id, path);

    if (device < 0)
        return -1;

    return read_bd_stats(priv, device, dom->id, stats);
}

原创粉丝点击