Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
[linux-2.6-block.git] / tools / perf / util / target.h
index 2d0c506908926f6fce822adc45a39e76911edd10..7381b1ca4041f2975f5d4e7e26f25809601704b2 100644 (file)
@@ -12,7 +12,8 @@ struct target {
        uid_t        uid;
        bool         system_wide;
        bool         uses_mmap;
-       bool         force_per_cpu;
+       bool         default_per_cpu;
+       bool         per_thread;
 };
 
 enum target_errno {
@@ -33,6 +34,7 @@ enum target_errno {
        TARGET_ERRNO__UID_OVERRIDE_CPU,
        TARGET_ERRNO__PID_OVERRIDE_SYSTEM,
        TARGET_ERRNO__UID_OVERRIDE_SYSTEM,
+       TARGET_ERRNO__SYSTEM_OVERRIDE_THREAD,
 
        /* for target__parse_uid() */
        TARGET_ERRNO__INVALID_UID,
@@ -61,4 +63,17 @@ static inline bool target__none(struct target *target)
        return !target__has_task(target) && !target__has_cpu(target);
 }
 
+static inline bool target__uses_dummy_map(struct target *target)
+{
+       bool use_dummy = false;
+
+       if (target->default_per_cpu)
+               use_dummy = target->per_thread ? true : false;
+       else if (target__has_task(target) ||
+                (!target__has_cpu(target) && !target->uses_mmap))
+               use_dummy = true;
+
+       return use_dummy;
+}
+
 #endif /* _PERF_TARGET_H */