From 8148475b0e7a3c399e67813406bae4107cc707de Mon Sep 17 00:00:00 2001 From: thomas Date: Fri, 15 Jul 2022 13:41:02 -0400 Subject: [PATCH] lib: posix: move eventfd to subsys/net This PR attempts to follow the original author of the eventfd implementations' intuition, that the eventfd feature should be under subsys/net. This PR assumes the eventfd feature is more important for usage that is specific to zephyr, than for usage that is intended for porting existing posix applications. Reviewing the original PR that implemented the eventfd feature, the code reviewers seemed indifferent as to whether this feature was under subsys/net or lib/posix, and it's reasons for landing in lib/posix seemed arbitrary. There was also difficulty coming up with a name that would not conflict with native_posix host. So to address the name conflict with posix architectures: eventfd is rebranded under the `zsock_` prefix, and a posix name is available with CONFIG_NET_SOCKET_POSIX_NAMES, similar to other socket features. Samples and unit tests were migrated to network folders instead of posix folders. The "pure" posix demo was changed to be no longer be "pure" posix. However, this sample should probably show how to use eventfd in the context of a network socket anyway. Signed-off-by: thomas chiantia --- include/zephyr/net/socket.h | 74 +++++++++++++ include/zephyr/posix/sys/eventfd.h | 102 ------------------ lib/posix/CMakeLists.txt | 1 - lib/posix/Kconfig | 16 --- .../sockets}/eventfd/CMakeLists.txt | 0 .../sockets}/eventfd/Makefile.posix | 0 samples/net/sockets/eventfd/prj.conf | 11 ++ .../sockets}/eventfd/sample.yaml | 0 .../{posix => net/sockets}/eventfd/src/main.c | 21 ++-- samples/posix/eventfd/prj.conf | 11 -- subsys/net/lib/sockets/CMakeLists.txt | 1 + subsys/net/lib/sockets/Kconfig | 15 +++ .../net/lib/sockets}/eventfd.c | 90 ++++++++++++---- .../socket}/eventfd/CMakeLists.txt | 0 tests/{posix => net/socket}/eventfd/prj.conf | 7 +- .../{posix => net/socket}/eventfd/src/main.c | 5 +- .../socket}/eventfd/testcase.yaml | 0 .../socket}/eventfd_basic/CMakeLists.txt | 0 .../socket}/eventfd_basic/prj.conf | 6 +- .../socket}/eventfd_basic/src/main.c | 6 -- .../socket}/eventfd_basic/testcase.yaml | 0 21 files changed, 187 insertions(+), 179 deletions(-) delete mode 100644 include/zephyr/posix/sys/eventfd.h rename samples/{posix => net/sockets}/eventfd/CMakeLists.txt (100%) rename samples/{posix => net/sockets}/eventfd/Makefile.posix (100%) create mode 100644 samples/net/sockets/eventfd/prj.conf rename samples/{posix => net/sockets}/eventfd/sample.yaml (100%) rename samples/{posix => net/sockets}/eventfd/src/main.c (78%) delete mode 100644 samples/posix/eventfd/prj.conf rename {lib/posix => subsys/net/lib/sockets}/eventfd.c (73%) rename tests/{posix => net/socket}/eventfd/CMakeLists.txt (100%) rename tests/{posix => net/socket}/eventfd/prj.conf (74%) rename tests/{posix => net/socket}/eventfd/src/main.c (98%) rename tests/{posix => net/socket}/eventfd/testcase.yaml (100%) rename tests/{posix => net/socket}/eventfd_basic/CMakeLists.txt (100%) rename tests/{posix => net/socket}/eventfd_basic/prj.conf (68%) rename tests/{posix => net/socket}/eventfd_basic/src/main.c (92%) rename tests/{posix => net/socket}/eventfd_basic/testcase.yaml (100%) diff --git a/include/zephyr/net/socket.h b/include/zephyr/net/socket.h index ae6218b3b9256..b3f79ee37c6b9 100644 --- a/include/zephyr/net/socket.h +++ b/include/zephyr/net/socket.h @@ -39,6 +39,8 @@ struct zsock_pollfd { short revents; }; +typedef uint64_t zsock_eventfd_t; + /* ZSOCK_POLL* values are compatible with Linux */ /** zsock_poll: Poll for readability */ #define ZSOCK_POLLIN 1 @@ -75,6 +77,12 @@ struct zsock_pollfd { /** zsock_shutdown: Shut down for both reading and writing */ #define ZSOCK_SHUT_RDWR 2 +/** zsock_eventfd **/ +#define ZSOCK_EFD_IN_USE 0x1 +#define ZSOCK_EFD_SEMAPHORE 0x2 +#define ZSOCK_EFD_NONBLOCK O_NONBLOCK +#define ZSOCK_EFD_FLAGS_SET (ZSOCK_EFD_SEMAPHORE | ZSOCK_EFD_NONBLOCK) + /** Protocol level for TLS. * Here, the same socket protocol level for TLS as in Linux was used. */ @@ -268,6 +276,43 @@ __syscall int zsock_socket(int family, int type, int proto); */ __syscall int zsock_socketpair(int family, int type, int proto, int *sv); +/** + * @brief Create an unnamed pair of connected sockets + * + * @details + * @rst + * See `POSIX.1-2017 article + * `__ + * for normative description. + * This function is also exposed as ``eventfd()`` + * if :kconfig:option:`CONFIG_NET_SOCKETS_POSIX_NAMES` is defined. + * @endrst + */ +__syscall int zsock_eventfd(unsigned int initval, int flags); + +/** + * @brief Read from an eventfd + * + * If call is successful, the value parameter will have the value 1 + * + * @param fd File descriptor + * @param value Pointer for storing the read value + * + * @return 0 on success, -1 on error + */ +__syscall int zsock_eventfd_read(int fd, zsock_eventfd_t *value); + +/** + * @brief Write to an eventfd + * + * @param fd File descriptor + * @param value Value to write + * + * @return 0 on success, -1 on error + */ +__syscall int zsock_eventfd_write(int fd, zsock_eventfd_t value); + + /** * @brief Close a network socket * @@ -685,6 +730,8 @@ int zsock_getnameinfo(const struct sockaddr *addr, socklen_t addrlen, #define pollfd zsock_pollfd +#define eventfd_t zsock_eventfd_t + /** POSIX wrapper for @ref zsock_socket */ static inline int socket(int family, int type, int proto) { @@ -697,6 +744,24 @@ static inline int socketpair(int family, int type, int proto, int sv[2]) return zsock_socketpair(family, type, proto, sv); } +/** POSIX wrapper for @ref zsock_eventfd */ +static inline int eventfd(unsigned int initval, int flags) +{ + return zsock_eventfd(initval, flags); +} + +/** POSIX wrapper for @ref zsock_eventfd_read */ +static inline int eventfd_read(int fd, zsock_eventfd_t *value) +{ + return zsock_eventfd_read(fd, value); +} + +/** POSIX wrapper for @ref zsock_eventfd_write */ +static inline int eventfd_write(int fd, zsock_eventfd_t value) +{ + return zsock_eventfd_write(fd, value); +} + /** POSIX wrapper for @ref zsock_close */ static inline int close(int sock) { @@ -896,6 +961,15 @@ static inline char *inet_ntop(sa_family_t family, const void *src, char *dst, /** POSIX wrapper for @ref ZSOCK_SHUT_RDWR */ #define SHUT_RDWR ZSOCK_SHUT_RDWR +/** POSIX wrapper for @ref ZSOCK_EFD_IN_USE */ +#define EFD_IN_USE ZSOCK_EFD_IN_USE +/** POSIX wrapper for @ref ZSOCK_EFD_SEMAPHORE */ +#define EFD_SEMAPHORE ZSOCK_EFD_SEMAPHORE +/** POSIX wrapper for @ref ZSOCK_EFD_NONBLOCK */ +#define EFD_NONBLOCK ZSOCK_EFD_NONBLOCK +/** POSIX wrapper for @ref ZSOCK_EFD_FLAGS_SET */ +#define EFD_FLAGS_SET ZSOCK_EFD_FLAGS_SET + /** POSIX wrapper for @ref DNS_EAI_BADFLAGS */ #define EAI_BADFLAGS DNS_EAI_BADFLAGS /** POSIX wrapper for @ref DNS_EAI_NONAME */ diff --git a/include/zephyr/posix/sys/eventfd.h b/include/zephyr/posix/sys/eventfd.h deleted file mode 100644 index 4d6d4dc33ca5c..0000000000000 --- a/include/zephyr/posix/sys/eventfd.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (c) 2020 Tobias Svehagen - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#ifndef ZEPHYR_INCLUDE_POSIX_SYS_EVENTFD_H_ -#define ZEPHYR_INCLUDE_POSIX_SYS_EVENTFD_H_ - -#include -#include -#include - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define EFD_IN_USE 0x1 -#define EFD_SEMAPHORE 0x2 -#define EFD_NONBLOCK O_NONBLOCK -#define EFD_FLAGS_SET (EFD_SEMAPHORE | EFD_NONBLOCK) - -typedef uint64_t eventfd_t; - -/** - * @brief Create a file descriptor for event notification - * - * The returned file descriptor can be used with POSIX read/write calls or - * with the eventfd_read/eventfd_write functions. - * - * It also supports polling and by including an eventfd in a call to poll, - * it is possible to signal and wake the polling thread by simply writing to - * the eventfd. - * - * When using read() and write() on an eventfd, the size must always be at - * least 8 bytes or the operation will fail with EINVAL. - * - * @return New eventfd file descriptor on success, -1 on error - */ -int eventfd(unsigned int initval, int flags); - -/** - * @brief Read from an eventfd - * - * If call is successful, the value parameter will have the value 1 - * - * @param fd File descriptor - * @param value Pointer for storing the read value - * - * @return 0 on success, -1 on error - */ -static inline int eventfd_read(int fd, eventfd_t *value) -{ - const struct fd_op_vtable *efd_vtable; - struct k_mutex *lock; - ssize_t ret; - void *obj; - - obj = z_get_fd_obj_and_vtable(fd, &efd_vtable, &lock); - - (void)k_mutex_lock(lock, K_FOREVER); - - ret = efd_vtable->read(obj, value, sizeof(*value)); - - k_mutex_unlock(lock); - - return ret == sizeof(eventfd_t) ? 0 : -1; -} - -/** - * @brief Write to an eventfd - * - * @param fd File descriptor - * @param value Value to write - * - * @return 0 on success, -1 on error - */ -static inline int eventfd_write(int fd, eventfd_t value) -{ - const struct fd_op_vtable *efd_vtable; - struct k_mutex *lock; - ssize_t ret; - void *obj; - - obj = z_get_fd_obj_and_vtable(fd, &efd_vtable, &lock); - - (void)k_mutex_lock(lock, K_FOREVER); - - ret = efd_vtable->write(obj, &value, sizeof(value)); - - k_mutex_unlock(lock); - - return ret == sizeof(eventfd_t) ? 0 : -1; -} - -#ifdef __cplusplus -} -#endif - -#endif /* ZEPHYR_INCLUDE_POSIX_SYS_EVENTFD_H_ */ diff --git a/lib/posix/CMakeLists.txt b/lib/posix/CMakeLists.txt index 1bb9f8467cb5f..2a06df2e41969 100644 --- a/lib/posix/CMakeLists.txt +++ b/lib/posix/CMakeLists.txt @@ -23,7 +23,6 @@ zephyr_library_sources_ifdef(CONFIG_PTHREAD_IPC semaphore.c) zephyr_library_sources_ifdef(CONFIG_PTHREAD_IPC pthread_key.c) zephyr_library_sources_ifdef(CONFIG_POSIX_MQUEUE mqueue.c) zephyr_library_sources_ifdef(CONFIG_POSIX_FS fs.c) -zephyr_library_sources_ifdef(CONFIG_EVENTFD eventfd.c) add_subdirectory_ifdef(CONFIG_GETOPT getopt) if(NOT (CONFIG_BOARD_NATIVE_POSIX OR CONFIG_BOARD_NATIVE_POSIX_64BIT)) diff --git a/lib/posix/Kconfig b/lib/posix/Kconfig index 8bb56649e3993..274717a856c61 100644 --- a/lib/posix/Kconfig +++ b/lib/posix/Kconfig @@ -110,19 +110,3 @@ config APP_LINK_WITH_POSIX_SUBSYS depends on POSIX_API help Add POSIX subsystem header files to the 'app' include path. - -config EVENTFD - bool "Support for eventfd" - depends on !ARCH_POSIX - help - Enable support for event file descriptors, eventfd. An eventfd can - be used as an event wait/notify mechanism together with POSIX calls - like read, write and poll. - -config EVENTFD_MAX - int "Maximum number of eventfd's" - depends on EVENTFD - default 1 - range 1 4096 - help - The maximum number of supported event file descriptors. diff --git a/samples/posix/eventfd/CMakeLists.txt b/samples/net/sockets/eventfd/CMakeLists.txt similarity index 100% rename from samples/posix/eventfd/CMakeLists.txt rename to samples/net/sockets/eventfd/CMakeLists.txt diff --git a/samples/posix/eventfd/Makefile.posix b/samples/net/sockets/eventfd/Makefile.posix similarity index 100% rename from samples/posix/eventfd/Makefile.posix rename to samples/net/sockets/eventfd/Makefile.posix diff --git a/samples/net/sockets/eventfd/prj.conf b/samples/net/sockets/eventfd/prj.conf new file mode 100644 index 0000000000000..c4b1886032717 --- /dev/null +++ b/samples/net/sockets/eventfd/prj.conf @@ -0,0 +1,11 @@ +# General config +CONFIG_NEWLIB_LIBC=y +CONFIG_NEWLIB_LIBC_NANO=n + +# eventfd() implementation only makes sense for networking APIs. +CONFIG_NETWORKING=y +CONFIG_NET_SOCKETS=y +CONFIG_NET_SOCKETS_POSIX_NAMES=y +CONFIG_NET_EVENTFD=y +CONFIG_NET_SLIP_TAP=n +CONFIG_TEST_RANDOM_GENERATOR=y diff --git a/samples/posix/eventfd/sample.yaml b/samples/net/sockets/eventfd/sample.yaml similarity index 100% rename from samples/posix/eventfd/sample.yaml rename to samples/net/sockets/eventfd/sample.yaml diff --git a/samples/posix/eventfd/src/main.c b/samples/net/sockets/eventfd/src/main.c similarity index 78% rename from samples/posix/eventfd/src/main.c rename to samples/net/sockets/eventfd/src/main.c index 759ea0897f9ab..6f37430311685 100644 --- a/samples/posix/eventfd/src/main.c +++ b/samples/net/sockets/eventfd/src/main.c @@ -6,11 +6,10 @@ * This sample application is roughly based on the sample code in Linux * manpage for eventfd(). */ -#include -#include #include #include #include +#include #define fatal(msg) \ do { perror(msg); exit(EXIT_FAILURE); } while (0) @@ -31,8 +30,8 @@ void writer(void) for (j = 1; j < g_argc; j++) { printf("Writing %s to efd\n", g_argv[j]); u = strtoull(g_argv[j], NULL, 0); - s = write(efd, &u, sizeof(uint64_t)); - if (s != sizeof(uint64_t)) { + s = eventfd_write(efd, u); + if (s != 0) { fatal("write"); } } @@ -44,21 +43,21 @@ void reader(void) uint64_t u; ssize_t s; - sleep(1); + k_sleep(K_MSEC(1000)); printf("About to read\n"); - s = read(efd, &u, sizeof(uint64_t)); - if (s != sizeof(uint64_t)) { + s = eventfd_read(efd, &u); + if (s != 0) { fatal("read"); } printf("Read %llu (0x%llx) from efd\n", (unsigned long long)u, (unsigned long long)u); } -int main(int argc, char *argv[]) +void main(void) { - argv = input_argv; - argc = sizeof(input_argv) / sizeof(input_argv[0]); + char **argv = input_argv; + int argc = sizeof(input_argv) / sizeof(input_argv[0]); if (argc < 2) { fprintf(stderr, "Usage: %s ...\n", argv[0]); @@ -77,6 +76,4 @@ int main(int argc, char *argv[]) reader(); printf("Finished\n"); - - return 0; } diff --git a/samples/posix/eventfd/prj.conf b/samples/posix/eventfd/prj.conf deleted file mode 100644 index ab7c7475befd1..0000000000000 --- a/samples/posix/eventfd/prj.conf +++ /dev/null @@ -1,11 +0,0 @@ -# General config -CONFIG_NEWLIB_LIBC=y -CONFIG_NEWLIB_LIBC_NANO=n -CONFIG_POSIX_API=y -CONFIG_EVENTFD=y - -# eventfd() implementation currently depends on some networking APIs, -# so provide reasonable defaults so it can be built. -CONFIG_NETWORKING=y -CONFIG_NET_SLIP_TAP=n -CONFIG_TEST_RANDOM_GENERATOR=y diff --git a/subsys/net/lib/sockets/CMakeLists.txt b/subsys/net/lib/sockets/CMakeLists.txt index 189c79488393f..bb8c2cde74609 100644 --- a/subsys/net/lib/sockets/CMakeLists.txt +++ b/subsys/net/lib/sockets/CMakeLists.txt @@ -31,5 +31,6 @@ if(CONFIG_SOCKS) endif() zephyr_sources_ifdef(CONFIG_NET_SOCKETPAIR socketpair.c) +zephyr_sources_ifdef(CONFIG_NET_EVENTFD eventfd.c) zephyr_link_libraries_ifdef(CONFIG_MBEDTLS mbedTLS) diff --git a/subsys/net/lib/sockets/Kconfig b/subsys/net/lib/sockets/Kconfig index 84f8e1b167d6e..0111bafa63b61 100644 --- a/subsys/net/lib/sockets/Kconfig +++ b/subsys/net/lib/sockets/Kconfig @@ -257,6 +257,21 @@ config NET_SOCKETPAIR_BUFFER_SIZE help Buffer size for socketpair(2) +config NET_EVENTFD + bool "Support for eventfd" + help + Enable support for event file descriptors, eventfd. An eventfd can + be used as an event wait/notify mechanism together with POSIX calls + like read, write and poll. + +config NET_EVENTFD_MAX + int "Maximum number of eventfd's" + depends on NET_EVENTFD + default 1 + range 1 4096 + help + The maximum number of supported event file descriptors. + config NET_SOCKETS_NET_MGMT bool "Network management socket support [EXPERIMENTAL]" depends on NET_MGMT_EVENT diff --git a/lib/posix/eventfd.c b/subsys/net/lib/sockets/eventfd.c similarity index 73% rename from lib/posix/eventfd.c rename to subsys/net/lib/sockets/eventfd.c index 17573d074daa6..9c93d0fe6ec29 100644 --- a/lib/posix/eventfd.c +++ b/subsys/net/lib/sockets/eventfd.c @@ -6,21 +6,24 @@ #include #include -#include #include +#include #include +#include + +#include struct eventfd { struct k_poll_signal read_sig; struct k_poll_signal write_sig; struct k_spinlock lock; _wait_q_t wait_q; - eventfd_t cnt; + zsock_eventfd_t cnt; int flags; }; K_MUTEX_DEFINE(eventfd_mtx); -static struct eventfd efds[CONFIG_EVENTFD_MAX]; +static struct eventfd efds[CONFIG_NET_EVENTFD_MAX]; static int eventfd_poll_prepare(struct eventfd *efd, struct zsock_pollfd *pfd, @@ -83,23 +86,23 @@ static ssize_t eventfd_read_op(void *obj, void *buf, size_t sz) { struct eventfd *efd = obj; int result = 0; - eventfd_t count = 0; + zsock_eventfd_t count = 0; k_spinlock_key_t key; - if (sz < sizeof(eventfd_t)) { + if (sz < sizeof(zsock_eventfd_t)) { errno = EINVAL; return -1; } for (;;) { key = k_spin_lock(&efd->lock); - if ((efd->flags & EFD_NONBLOCK) && efd->cnt == 0) { + if ((efd->flags & ZSOCK_EFD_NONBLOCK) && efd->cnt == 0) { result = EAGAIN; break; } else if (efd->cnt == 0) { z_pend_curr(&efd->lock, key, &efd->wait_q, K_FOREVER); } else { - count = (efd->flags & EFD_SEMAPHORE) ? 1 : efd->cnt; + count = (efd->flags & ZSOCK_EFD_SEMAPHORE) ? 1 : efd->cnt; efd->cnt -= count; if (efd->cnt == 0) { k_poll_signal_reset(&efd->read_sig); @@ -119,25 +122,25 @@ static ssize_t eventfd_read_op(void *obj, void *buf, size_t sz) return -1; } - *(eventfd_t *)buf = count; + *(zsock_eventfd_t *)buf = count; - return sizeof(eventfd_t); + return sizeof(zsock_eventfd_t); } static ssize_t eventfd_write_op(void *obj, const void *buf, size_t sz) { struct eventfd *efd = obj; int result = 0; - eventfd_t count; + zsock_eventfd_t count; bool overflow; k_spinlock_key_t key; - if (sz < sizeof(eventfd_t)) { + if (sz < sizeof(zsock_eventfd_t)) { errno = EINVAL; return -1; } - count = *((eventfd_t *)buf); + count = *((zsock_eventfd_t *)buf); if (count == UINT64_MAX) { errno = EINVAL; @@ -145,13 +148,13 @@ static ssize_t eventfd_write_op(void *obj, const void *buf, size_t sz) } if (count == 0) { - return sizeof(eventfd_t); + return sizeof(zsock_eventfd_t); } for (;;) { key = k_spin_lock(&efd->lock); overflow = UINT64_MAX - count <= efd->cnt; - if ((efd->flags & EFD_NONBLOCK) && overflow) { + if ((efd->flags & ZSOCK_EFD_NONBLOCK) && overflow) { result = EAGAIN; break; } else if (overflow) { @@ -176,7 +179,7 @@ static ssize_t eventfd_write_op(void *obj, const void *buf, size_t sz) return -1; } - return sizeof(eventfd_t); + return sizeof(zsock_eventfd_t); } static int eventfd_close_op(void *obj) @@ -194,14 +197,14 @@ static int eventfd_ioctl_op(void *obj, unsigned int request, va_list args) switch (request) { case F_GETFL: - return efd->flags & EFD_FLAGS_SET; + return efd->flags & ZSOCK_EFD_FLAGS_SET; case F_SETFL: { int flags; flags = va_arg(args, int); - if (flags & ~EFD_FLAGS_SET) { + if (flags & ~ZSOCK_EFD_FLAGS_SET) { errno = EINVAL; return -1; } @@ -246,13 +249,58 @@ static const struct fd_op_vtable eventfd_fd_vtable = { .ioctl = eventfd_ioctl_op, }; -int eventfd(unsigned int initval, int flags) +int z_impl_zsock_eventfd_read(int fd, zsock_eventfd_t *value) +{ + const struct fd_op_vtable *efd_vtable; + struct k_mutex *lock; + ssize_t ret; + void *obj; + + obj = z_get_fd_obj_and_vtable(fd, &efd_vtable, &lock); + + (void)k_mutex_lock(lock, K_FOREVER); + + ret = efd_vtable->read(obj, value, sizeof(*value)); + + k_mutex_unlock(lock); + + return ret == sizeof(zsock_eventfd_t) ? 0 : -1; +} + +/** + * @brief Write to an eventfd + * + * @param fd File descriptor + * @param value Value to write + * + * @return 0 on success, -1 on error + */ +int z_impl_zsock_eventfd_write(int fd, zsock_eventfd_t value) +{ + const struct fd_op_vtable *efd_vtable; + struct k_mutex *lock; + ssize_t ret; + void *obj; + + obj = z_get_fd_obj_and_vtable(fd, &efd_vtable, &lock); + + (void)k_mutex_lock(lock, K_FOREVER); + + ret = efd_vtable->write(obj, &value, sizeof(value)); + + k_mutex_unlock(lock); + + return ret == sizeof(zsock_eventfd_t) ? 0 : -1; +} + + +int z_impl_zsock_eventfd(unsigned int initval, int flags) { struct eventfd *efd = NULL; int fd = -1; int i; - if (flags & ~EFD_FLAGS_SET) { + if (flags & ~ZSOCK_EFD_FLAGS_SET) { errno = EINVAL; return -1; } @@ -260,7 +308,7 @@ int eventfd(unsigned int initval, int flags) k_mutex_lock(&eventfd_mtx, K_FOREVER); for (i = 0; i < ARRAY_SIZE(efds); ++i) { - if (!(efds[i].flags & EFD_IN_USE)) { + if (!(efds[i].flags & ZSOCK_EFD_IN_USE)) { efd = &efds[i]; break; } @@ -276,7 +324,7 @@ int eventfd(unsigned int initval, int flags) goto exit_mtx; } - efd->flags = EFD_IN_USE | flags; + efd->flags = ZSOCK_EFD_IN_USE | flags; efd->cnt = initval; k_poll_signal_init(&efd->write_sig); diff --git a/tests/posix/eventfd/CMakeLists.txt b/tests/net/socket/eventfd/CMakeLists.txt similarity index 100% rename from tests/posix/eventfd/CMakeLists.txt rename to tests/net/socket/eventfd/CMakeLists.txt diff --git a/tests/posix/eventfd/prj.conf b/tests/net/socket/eventfd/prj.conf similarity index 74% rename from tests/posix/eventfd/prj.conf rename to tests/net/socket/eventfd/prj.conf index fd7af65fb70bf..1e05c809abeb0 100644 --- a/tests/posix/eventfd/prj.conf +++ b/tests/net/socket/eventfd/prj.conf @@ -2,6 +2,9 @@ CONFIG_NETWORKING=y CONFIG_NET_TEST=y CONFIG_NET_SOCKETS=y +CONFIG_NET_EVENTFD=y +CONFIG_NET_EVENTFD_MAX=3 +CONFIG_NET_SOCKETS_POSIX_NAMES=y # Network driver config CONFIG_TEST_RANDOM_GENERATOR=y @@ -9,9 +12,5 @@ CONFIG_TEST_RANDOM_GENERATOR=y CONFIG_ZTEST=y CONFIG_ZTEST_NEW_API=y -CONFIG_POSIX_API=y CONFIG_POSIX_MAX_FDS=10 CONFIG_MAX_PTHREAD_COUNT=1 - -CONFIG_EVENTFD=y -CONFIG_EVENTFD_MAX=3 diff --git a/tests/posix/eventfd/src/main.c b/tests/net/socket/eventfd/src/main.c similarity index 98% rename from tests/posix/eventfd/src/main.c rename to tests/net/socket/eventfd/src/main.c index fb24bc58101a2..6b54419a6b18a 100644 --- a/tests/posix/eventfd/src/main.c +++ b/tests/net/socket/eventfd/src/main.c @@ -6,11 +6,10 @@ #include #include -#include #include +#include + #include -#include -#include #define TESTVAL 10 diff --git a/tests/posix/eventfd/testcase.yaml b/tests/net/socket/eventfd/testcase.yaml similarity index 100% rename from tests/posix/eventfd/testcase.yaml rename to tests/net/socket/eventfd/testcase.yaml diff --git a/tests/posix/eventfd_basic/CMakeLists.txt b/tests/net/socket/eventfd_basic/CMakeLists.txt similarity index 100% rename from tests/posix/eventfd_basic/CMakeLists.txt rename to tests/net/socket/eventfd_basic/CMakeLists.txt diff --git a/tests/posix/eventfd_basic/prj.conf b/tests/net/socket/eventfd_basic/prj.conf similarity index 68% rename from tests/posix/eventfd_basic/prj.conf rename to tests/net/socket/eventfd_basic/prj.conf index 2f8e00774b7a5..a4f3a78b4d7cd 100644 --- a/tests/posix/eventfd_basic/prj.conf +++ b/tests/net/socket/eventfd_basic/prj.conf @@ -2,12 +2,12 @@ CONFIG_NETWORKING=y CONFIG_NET_TEST=y CONFIG_NET_SOCKETS=y +CONFIG_NET_EVENTFD=y +CONFIG_NET_EVENTFD_MAX=1 +CONFIG_NET_SOCKETS_POSIX_NAMES=y # Network driver config CONFIG_TEST_RANDOM_GENERATOR=y CONFIG_ZTEST=y CONFIG_ZTEST_NEW_API=y - -CONFIG_EVENTFD=y -CONFIG_EVENTFD_MAX=1 diff --git a/tests/posix/eventfd_basic/src/main.c b/tests/net/socket/eventfd_basic/src/main.c similarity index 92% rename from tests/posix/eventfd_basic/src/main.c rename to tests/net/socket/eventfd_basic/src/main.c index c25efa206455d..f1e204b58f2d5 100644 --- a/tests/posix/eventfd_basic/src/main.c +++ b/tests/net/socket/eventfd_basic/src/main.c @@ -9,12 +9,6 @@ #include -#ifdef CONFIG_POSIX_API -#include -#else -#include -#endif - ZTEST_SUITE(test_eventfd_basic, NULL, NULL, NULL, NULL, NULL); ZTEST(test_eventfd_basic, test_eventfd) diff --git a/tests/posix/eventfd_basic/testcase.yaml b/tests/net/socket/eventfd_basic/testcase.yaml similarity index 100% rename from tests/posix/eventfd_basic/testcase.yaml rename to tests/net/socket/eventfd_basic/testcase.yaml