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