source: trunk/kernel/kern/cluster_info.c @ 560

Last change on this file since 560 was 560, checked in by nicolas.van.phan@…, 3 years ago

Remove y_max in kernel init barriers

File size: 1.9 KB
RevLine 
[557]1/*
2 * cluster_info.h - An array in cluster descriptor describing the whole mesh
3 *
4 * Authors  Nicolas Phan    (2018)
5 *
6 * Copyright (c) UPMC Sorbonne Universites
7 *
8 * This file is part of ALMOS-MKH
9 *
10 * ALMOS-MKH is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; version 2.0 of the License.
13 *
14 * ALMOS-MKH is distributed in the hope that it will be useful, but
15 * WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17 * General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with ALMOS-MKH; if not, write to the Free Software Foundation,
21 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24#include <cluster_info.h>
25
[560]26int cluster_info_is_active( uint32_t cluster_info )
[557]27{
28    return (cluster_info & CINFO_ACTIVE);
29}
30
[560]31int cluster_info_nb_actives( uint32_t cluster_info[CONFIG_MAX_CLUSTERS_X][CONFIG_MAX_CLUSTERS_Y] )
32{
33    int n = 0;
34    int x, y;
35    for (y = 0; y < CONFIG_MAX_CLUSTERS_Y; y++) {
36        for (x = 0; x < CONFIG_MAX_CLUSTERS_X; x++) {
37            if (cluster_info[x][y] & CINFO_ACTIVE) {
38                n += 1;
39            }
40        }
41    }
42    return n;
43}
44
[557]45/*
[560]46int cluster_info_cluster_ok( uint32_t cluster_info )
[557]47{
48    if ((cluster_info & CINFO_ACTIVE) &&  // If the cluster is not empty
49        (cluster_info & CINFO_RAM_OK) &&  // and its RAM is working
50        (cluster_info & CINFO_XCU_OK) &&  // and its XCU is working
51        (cluster_info & CINFO_CORES_MASK) ) // and at least one core works
52    {
53        return 1;
54    }
55    else
56    {
57        return 0;
58    }
59}
60
[560]61int cluster_info_core_ok( uint32_t cluster_info, int n)
[557]62{
63    if ( n < 0 || n >= NB_TOTAL_PROCS )
64    {
65        return -1;
66    }
67    return (cluster_info & (1 << n));
68}
69*/
Note: See TracBrowser for help on using the repository browser.