xref: /OK3568_Linux_fs/kernel/tools/perf/arch/nds32/util/header.c (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun // Copyright (C) 2005-2017 Andes Technology Corporation
3*4882a593Smuzhiyun 
4*4882a593Smuzhiyun #include <stdio.h>
5*4882a593Smuzhiyun #include <stdlib.h>
6*4882a593Smuzhiyun #include <api/fs/fs.h>
7*4882a593Smuzhiyun #include "header.h"
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun #define STR_LEN 1024
10*4882a593Smuzhiyun 
get_cpuid_str(struct perf_pmu * pmu)11*4882a593Smuzhiyun char *get_cpuid_str(struct perf_pmu *pmu)
12*4882a593Smuzhiyun {
13*4882a593Smuzhiyun 	/* In nds32, we only have one cpu */
14*4882a593Smuzhiyun 	char *buf = NULL;
15*4882a593Smuzhiyun 	struct cpu_map *cpus;
16*4882a593Smuzhiyun 	const char *sysfs = sysfs__mountpoint();
17*4882a593Smuzhiyun 
18*4882a593Smuzhiyun 	if (!sysfs || !pmu || !pmu->cpus)
19*4882a593Smuzhiyun 		return NULL;
20*4882a593Smuzhiyun 
21*4882a593Smuzhiyun 	buf = malloc(STR_LEN);
22*4882a593Smuzhiyun 	if (!buf)
23*4882a593Smuzhiyun 		return NULL;
24*4882a593Smuzhiyun 
25*4882a593Smuzhiyun 	cpus = cpu_map__get(pmu->cpus);
26*4882a593Smuzhiyun 	sprintf(buf, "0x%x", cpus->nr - 1);
27*4882a593Smuzhiyun 	cpu_map__put(cpus);
28*4882a593Smuzhiyun 	return buf;
29*4882a593Smuzhiyun }
30