waitid_options.c 665 B

12345678910111213141516171819202122232425262728
  1. // SPDX-License-Identifier: GPL-2.0
  2. #include <sys/types.h>
  3. #include <sys/wait.h>
  4. static size_t syscall_arg__scnprintf_waitid_options(char *bf, size_t size,
  5. struct syscall_arg *arg)
  6. {
  7. int printed = 0, options = arg->val;
  8. #define P_OPTION(n) \
  9. if (options & W##n) { \
  10. printed += scnprintf(bf + printed, size - printed, "%s%s", printed ? "|" : "", #n); \
  11. options &= ~W##n; \
  12. }
  13. P_OPTION(NOHANG);
  14. P_OPTION(UNTRACED);
  15. P_OPTION(CONTINUED);
  16. #undef P_OPTION
  17. if (options)
  18. printed += scnprintf(bf + printed, size - printed, "%s%#x", printed ? "|" : "", options);
  19. return printed;
  20. }
  21. #define SCA_WAITID_OPTIONS syscall_arg__scnprintf_waitid_options