コード例 #1
0
static gboolean
ufo_cpu_node_equal_real (UfoNode *n1,
                         UfoNode *n2)
{
    UfoCpuNodePrivate *priv1;
    UfoCpuNodePrivate *priv2;

#ifndef __APPLE__
    const gsize MAX_CPUS = MIN (16, CPU_SETSIZE);
#else
    const gsize MAX_CPUS = 16;
#endif

    g_return_val_if_fail (UFO_IS_CPU_NODE (n1) && UFO_IS_CPU_NODE (n2), FALSE);
    priv1 = UFO_CPU_NODE_GET_PRIVATE (n1);
    priv2 = UFO_CPU_NODE_GET_PRIVATE (n2);

#ifndef __APPLE__
    for (gsize i = 0; i < MAX_CPUS; i++) {
        if (CPU_ISSET (i, priv1->mask) != CPU_ISSET (i, priv2->mask))
            return FALSE;
    }
#endif

    return TRUE;
}
コード例 #2
0
ファイル: ufo-cpu-node.c プロジェクト: Dynalon/ufo-core
/**
 * ufo_cpu_node_get_affinity:
 * @node: A #UfoCpuNode
 *
 * Get affinity mask of @node.
 *
 * Returns: (transfer none): A pointer to the cpu_set_t mask associated with
 * @node.
 */
gpointer
ufo_cpu_node_get_affinity (UfoCpuNode *node)
{
    g_return_val_if_fail (UFO_IS_CPU_NODE (node), NULL);
    return node->priv->mask;
}