From 535e111d6acb506c77ee449a8771b4346c66bf12 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Tue, 7 Oct 2025 10:33:54 -0700 Subject: [PATCH 1/5] solaris: forward declare filter Needed for eventfd.h Signed-off-by: Rosen Penev --- src/solaris/platform.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/solaris/platform.h b/src/solaris/platform.h index 105bebaf..a7391dbf 100644 --- a/src/solaris/platform.h +++ b/src/solaris/platform.h @@ -17,6 +17,8 @@ #ifndef _KQUEUE_SOLARIS_PLATFORM_H #define _KQUEUE_SOLARIS_PLATFORM_H +struct filter; + #include #include #include From d235fc78d8a1824eca727247a11a61c8aa37b584 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Tue, 7 Oct 2025 10:35:56 -0700 Subject: [PATCH 2/5] solaris: fix unused variables These only get used under linux. Signed-off-by: Rosen Penev --- src/common/kqueue.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/common/kqueue.c b/src/common/kqueue.c index c532258d..7b856336 100644 --- a/src/common/kqueue.c +++ b/src/common/kqueue.c @@ -80,21 +80,23 @@ get_fd_limit(void) unsigned int get_fd_used(void) { +#ifdef __linux__ unsigned int fd_max = get_fd_limit(); unsigned int i; unsigned int used = 0; int our_errno = errno; /* Preserve errno */ -#ifdef __linux__ for (i = 0; i < fd_max; i++) { if (fcntl(i, F_GETFD) == 0) used++; } -#endif errno = our_errno; return used; +#else + return 0; +#endif } static struct map *kqmap; From 3a25f24b5dbe7401752cb84f5c7eced08b84e0c5 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Tue, 7 Oct 2025 11:00:36 -0700 Subject: [PATCH 3/5] solaris: u_int to unsigned int Solaris needs __EXTENSION__ defined for the former. Just avoid the situation. Signed-off-by: Rosen Penev --- src/common/kevent.c | 2 +- src/solaris/user.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/common/kevent.c b/src/common/kevent.c index 51f347b9..784a0531 100644 --- a/src/common/kevent.c +++ b/src/common/kevent.c @@ -145,7 +145,7 @@ kevent_dump(const struct kevent *kev) snprintf((char *) buf, sizeof(buf), "{ ident=%i, filter=%s, %s, %s, data=%d, udata=%p }", - (u_int) kev->ident, + (unsigned int) kev->ident, kevent_filter_dump(kev), kevent_flags_dump(kev), kevent_fflags_dump(kev), diff --git a/src/solaris/user.c b/src/solaris/user.c index fc1fbd76..c788dba3 100644 --- a/src/solaris/user.c +++ b/src/solaris/user.c @@ -55,7 +55,7 @@ int evfilt_user_knote_create(struct filter *filt UNUSED, struct knote *kn UNUSED) { #if TODO - u_int ffctrl; + unsigned int ffctrl; //determine if EV_ADD + NOTE_TRIGGER in the same kevent will cause a trigger */ if ((!(dst->kev.flags & EV_DISABLE)) && src->fflags & NOTE_TRIGGER) { From 8c50de0f3d101b603cfadc3a9c935faee1b46fcd Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Tue, 7 Oct 2025 12:29:06 -0700 Subject: [PATCH 4/5] solaris: fix unused result Signed-off-by: Rosen Penev --- src/solaris/signal.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/solaris/signal.c b/src/solaris/signal.c index e614bb10..f0f6a49b 100644 --- a/src/solaris/signal.c +++ b/src/solaris/signal.c @@ -41,7 +41,7 @@ signal_handler(int sig) s = &sigtbl[sig]; dbg_printf("sig=%d %d", sig, s->st_signum); - atomic_inc((volatile uint32_t *) &s->st_count); + (void)atomic_inc((volatile uint32_t *) &s->st_count); port_send(s->st_port, X_PORT_SOURCE_SIGNAL, &sigtbl[sig]); /* TODO: crash if port_send() fails? */ } From 2c686226d621f582687807cf12d32fa32887cab3 Mon Sep 17 00:00:00 2001 From: Rosen Penev Date: Tue, 7 Oct 2025 11:06:21 -0700 Subject: [PATCH 5/5] solaris: add missing headers --- src/solaris/platform.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/solaris/platform.h b/src/solaris/platform.h index a7391dbf..6334cf3d 100644 --- a/src/solaris/platform.h +++ b/src/solaris/platform.h @@ -21,13 +21,19 @@ struct filter; #include #include +#include #include #include +#include +#include #include #include #include #include "../posix/eventfd.h" +#include "../posix/platform_ext.h" + +#define EVENTFD_PLATFORM_SPECIFIC POSIX_EVENTFD_PLATFORM_SPECIFIC /* * C11 atomic operations