root/tools/perf/trace/beauty/eventfd.c

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. syscall_arg__scnprintf_eventfd_flags

   1 // SPDX-License-Identifier: LGPL-2.1
   2 #ifndef EFD_SEMAPHORE
   3 #define EFD_SEMAPHORE           1
   4 #endif
   5 
   6 #ifndef EFD_NONBLOCK
   7 #define EFD_NONBLOCK            00004000
   8 #endif
   9 
  10 #ifndef EFD_CLOEXEC
  11 #define EFD_CLOEXEC             02000000
  12 #endif
  13 
  14 static size_t syscall_arg__scnprintf_eventfd_flags(char *bf, size_t size, struct syscall_arg *arg)
  15 {
  16         bool show_prefix = arg->show_string_prefix;
  17         const char *prefix = "EFD_";
  18         int printed = 0, flags = arg->val;
  19 
  20         if (flags == 0)
  21                 return scnprintf(bf, size, "NONE");
  22 #define P_FLAG(n) \
  23         if (flags & EFD_##n) { \
  24                 printed += scnprintf(bf + printed, size - printed, "%s%s%s", printed ? "|" : "", show_prefix ? prefix : "", #n); \
  25                 flags &= ~EFD_##n; \
  26         }
  27 
  28         P_FLAG(SEMAPHORE);
  29         P_FLAG(CLOEXEC);
  30         P_FLAG(NONBLOCK);
  31 #undef P_FLAG
  32 
  33         if (flags)
  34                 printed += scnprintf(bf + printed, size - printed, "%s%#x", printed ? "|" : "", flags);
  35 
  36         return printed;
  37 }
  38 
  39 #define SCA_EFD_FLAGS syscall_arg__scnprintf_eventfd_flags

/* [<][>][^][v][top][bottom][index][help] */