 c94b93cbca
			
		
	
	
	c94b93cbca
	
	
	
		
			
			The stringify macros are defined in tools/perf/util/util.h and don't need to be redfined specfiically for powerpc. Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> Cc: Andi Kleen <andi@firstfloor.org> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Michael Ellerman <michaele@au1.ibm.com> Link: http://lkml.kernel.org/r/20140724074718.GB18829@us.ibm.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
		
			
				
	
	
		
			34 lines
		
	
	
	
		
			802 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
	
		
			802 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
| #include <sys/types.h>
 | |
| #include <unistd.h>
 | |
| #include <stdio.h>
 | |
| #include <stdlib.h>
 | |
| #include <string.h>
 | |
| 
 | |
| #include "../../util/header.h"
 | |
| #include "../../util/util.h"
 | |
| 
 | |
| #define mfspr(rn)       ({unsigned long rval; \
 | |
| 			 asm volatile("mfspr %0," __stringify(rn) \
 | |
| 				      : "=r" (rval)); rval; })
 | |
| 
 | |
| #define SPRN_PVR        0x11F	/* Processor Version Register */
 | |
| #define PVR_VER(pvr)    (((pvr) >>  16) & 0xFFFF) /* Version field */
 | |
| #define PVR_REV(pvr)    (((pvr) >>   0) & 0xFFFF) /* Revison field */
 | |
| 
 | |
| int
 | |
| get_cpuid(char *buffer, size_t sz)
 | |
| {
 | |
| 	unsigned long pvr;
 | |
| 	int nb;
 | |
| 
 | |
| 	pvr = mfspr(SPRN_PVR);
 | |
| 
 | |
| 	nb = scnprintf(buffer, sz, "%lu,%lu$", PVR_VER(pvr), PVR_REV(pvr));
 | |
| 
 | |
| 	/* look for end marker to ensure the entire data fit */
 | |
| 	if (strchr(buffer, '$')) {
 | |
| 		buffer[nb-1] = '\0';
 | |
| 		return 0;
 | |
| 	}
 | |
| 	return -1;
 | |
| }
 |