perf defines both __used and __unused variables to use for marking
unused variables. The variable __used is defined to
__attribute__((__unused__)), which contradicts the kernel definition to
__attribute__((__used__)) for new gcc versions. On Android, __used is
also defined in system headers and this leads to warnings like: warning:
'__used__' attribute ignored
__unused is not defined in the kernel and is not a standard definition.
If __unused is included everywhere instead of __used, this leads to
conflicts with glibc headers, since glibc has a variables with this name
in its headers.
The best approach is to use __maybe_unused, the definition used in the
kernel for __attribute__((unused)). In this way there is only one
definition in perf sources (instead of 2 definitions that point to the
same thing: __used and __unused) and it works on both Linux and Android.
This patch simply replaces all instances of __used and __unused with
__maybe_unused.
Signed-off-by: Irina Tirdea <irina.tirdea@intel.com>
Acked-by: Pekka Enberg <penberg@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Namhyung Kim <namhyung.kim@lge.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/1347315303-29906-7-git-send-email-irina.tirdea@intel.com
[ committer note: fixed up conflict with a116e05 in builtin-sched.c ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
		
	
			
		
			
				
	
	
		
			62 lines
		
	
	
	
		
			1.5 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
	
		
			1.5 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * builtin-list.c
 | 
						|
 *
 | 
						|
 * Builtin list command: list all event types
 | 
						|
 *
 | 
						|
 * Copyright (C) 2009, Thomas Gleixner <tglx@linutronix.de>
 | 
						|
 * Copyright (C) 2008-2009, Red Hat Inc, Ingo Molnar <mingo@redhat.com>
 | 
						|
 * Copyright (C) 2011, Red Hat Inc, Arnaldo Carvalho de Melo <acme@redhat.com>
 | 
						|
 */
 | 
						|
#include "builtin.h"
 | 
						|
 | 
						|
#include "perf.h"
 | 
						|
 | 
						|
#include "util/parse-events.h"
 | 
						|
#include "util/cache.h"
 | 
						|
 | 
						|
int cmd_list(int argc, const char **argv, const char *prefix __maybe_unused)
 | 
						|
{
 | 
						|
	setup_pager();
 | 
						|
 | 
						|
	if (argc == 1)
 | 
						|
		print_events(NULL, false);
 | 
						|
	else {
 | 
						|
		int i;
 | 
						|
 | 
						|
		for (i = 1; i < argc; ++i) {
 | 
						|
			if (i > 2)
 | 
						|
				putchar('\n');
 | 
						|
			if (strncmp(argv[i], "tracepoint", 10) == 0)
 | 
						|
				print_tracepoint_events(NULL, NULL, false);
 | 
						|
			else if (strcmp(argv[i], "hw") == 0 ||
 | 
						|
				 strcmp(argv[i], "hardware") == 0)
 | 
						|
				print_events_type(PERF_TYPE_HARDWARE);
 | 
						|
			else if (strcmp(argv[i], "sw") == 0 ||
 | 
						|
				 strcmp(argv[i], "software") == 0)
 | 
						|
				print_events_type(PERF_TYPE_SOFTWARE);
 | 
						|
			else if (strcmp(argv[i], "cache") == 0 ||
 | 
						|
				 strcmp(argv[i], "hwcache") == 0)
 | 
						|
				print_hwcache_events(NULL, false);
 | 
						|
			else if (strcmp(argv[i], "--raw-dump") == 0)
 | 
						|
				print_events(NULL, true);
 | 
						|
			else {
 | 
						|
				char *sep = strchr(argv[i], ':'), *s;
 | 
						|
				int sep_idx;
 | 
						|
 | 
						|
				if (sep == NULL) {
 | 
						|
					print_events(argv[i], false);
 | 
						|
					continue;
 | 
						|
				}
 | 
						|
				sep_idx = sep - argv[i];
 | 
						|
				s = strdup(argv[i]);
 | 
						|
				if (s == NULL)
 | 
						|
					return -1;
 | 
						|
 | 
						|
				s[sep_idx] = '\0';
 | 
						|
				print_tracepoint_events(s, s + sep_idx + 1, false);
 | 
						|
				free(s);
 | 
						|
			}
 | 
						|
		}
 | 
						|
	}
 | 
						|
	return 0;
 | 
						|
}
 |