Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
target.h
Go to the documentation of this file.
1 #ifndef _PERF_TARGET_H
2 #define _PERF_TARGET_H
3 
4 #include <stdbool.h>
5 #include <sys/types.h>
6 
7 struct perf_target {
8  const char *pid;
9  const char *tid;
10  const char *cpu_list;
11  const char *uid_str;
14  bool uses_mmap;
15 };
16 
19 
20  /*
21  * Choose an arbitrary negative big number not to clash with standard
22  * errno since SUS requires the errno has distinct positive values.
23  * See 'Issue 6' in the link below.
24  *
25  * http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/errno.h.html
26  */
28 
29 
30  /* for perf_target__validate() */
36 
37  /* for perf_target__parse_uid() */
40 
42 };
43 
46 
47 int perf_target__strerror(struct perf_target *target, int errnum, char *buf,
48  size_t buflen);
49 
50 static inline bool perf_target__has_task(struct perf_target *target)
51 {
52  return target->tid || target->pid || target->uid_str;
53 }
54 
55 static inline bool perf_target__has_cpu(struct perf_target *target)
56 {
57  return target->system_wide || target->cpu_list;
58 }
59 
60 static inline bool perf_target__none(struct perf_target *target)
61 {
62  return !perf_target__has_task(target) && !perf_target__has_cpu(target);
63 }
64 
65 #endif /* _PERF_TARGET_H */