aboutsummaryrefslogtreecommitdiff
path: root/tests/core/sys/kqueue/structs
diff options
context:
space:
mode:
authorJeroen van Rijn <Kelimion@users.noreply.github.com>2026-01-22 11:47:23 +0100
committerGitHub <noreply@github.com>2026-01-22 11:47:23 +0100
commit3f8a32aeb963e056ac7709c26f05a99fb884ef95 (patch)
tree4eed35fa23e9f4c5b7dedc6a355b16f5d3119661 /tests/core/sys/kqueue/structs
parentfb479b3aaec5a9a715bcff7d65498ba18020f4f0 (diff)
parent5c09550d383df49a1d29d8f66bc1c45ee3be1136 (diff)
Merge branch 'master' into xmlcomment
Diffstat (limited to 'tests/core/sys/kqueue/structs')
-rw-r--r--tests/core/sys/kqueue/structs/structs.c63
-rw-r--r--tests/core/sys/kqueue/structs/structs.odin58
2 files changed, 121 insertions, 0 deletions
diff --git a/tests/core/sys/kqueue/structs/structs.c b/tests/core/sys/kqueue/structs/structs.c
new file mode 100644
index 000000000..e7620c994
--- /dev/null
+++ b/tests/core/sys/kqueue/structs/structs.c
@@ -0,0 +1,63 @@
+#include <stddef.h>
+#include <stdio.h>
+#include <sys/event.h>
+
+int main(int argc, char *argv[])
+{
+ printf("kevent %zu %zu\n", sizeof(struct kevent), _Alignof(struct kevent));
+ printf("kevent.ident %zu\n", offsetof(struct kevent, ident));
+ printf("kevent.filter %zu\n", offsetof(struct kevent, filter));
+ printf("kevent.flags %zu\n", offsetof(struct kevent, flags));
+ printf("kevent.fflags %zu\n", offsetof(struct kevent, fflags));
+ printf("kevent.data %zu\n", offsetof(struct kevent, data));
+ printf("kevent.udata %zu\n", offsetof(struct kevent, udata));
+
+ printf("EV_ADD %d\n", EV_ADD);
+ printf("EV_DELETE %d\n", EV_DELETE);
+ printf("EV_ENABLE %d\n", EV_ENABLE);
+ printf("EV_DISABLE %d\n", EV_DISABLE);
+ printf("EV_ONESHOT %d\n", EV_ONESHOT);
+ printf("EV_CLEAR %d\n", EV_CLEAR);
+ printf("EV_RECEIPT %d\n", EV_RECEIPT);
+ printf("EV_DISPATCH %d\n", EV_DISPATCH);
+ printf("EV_ERROR %d\n", EV_ERROR);
+ printf("EV_EOF %d\n", EV_EOF);
+
+ printf("EVFILT_READ %d\n", EVFILT_READ);
+ printf("EVFILT_WRITE %d\n", EVFILT_WRITE);
+ printf("EVFILT_AIO %d\n", EVFILT_AIO);
+ printf("EVFILT_VNODE %d\n", EVFILT_VNODE);
+ printf("EVFILT_PROC %d\n", EVFILT_PROC);
+ printf("EVFILT_SIGNAL %d\n", EVFILT_SIGNAL);
+ printf("EVFILT_TIMER %d\n", EVFILT_TIMER);
+ printf("EVFILT_USER %d\n", EVFILT_USER);
+
+ printf("NOTE_SECONDS %u\n", NOTE_SECONDS);
+ printf("NOTE_USECONDS %u\n", NOTE_USECONDS);
+ printf("NOTE_NSECONDS %u\n", NOTE_NSECONDS);
+#if defined(NOTE_ABSOLUTE)
+ printf("NOTE_ABSOLUTE %u\n", NOTE_ABSOLUTE);
+#else
+ printf("NOTE_ABSOLUTE %u\n", NOTE_ABSTIME);
+#endif
+
+ printf("NOTE_LOWAT %u\n", NOTE_LOWAT);
+
+ printf("NOTE_DELETE %u\n", NOTE_DELETE);
+ printf("NOTE_WRITE %u\n", NOTE_WRITE);
+ printf("NOTE_EXTEND %u\n", NOTE_EXTEND);
+ printf("NOTE_ATTRIB %u\n", NOTE_ATTRIB);
+ printf("NOTE_LINK %u\n", NOTE_LINK);
+ printf("NOTE_RENAME %u\n", NOTE_RENAME);
+ printf("NOTE_REVOKE %u\n", NOTE_REVOKE);
+
+ printf("NOTE_EXIT %u\n", NOTE_EXIT);
+ printf("NOTE_FORK %u\n", NOTE_FORK);
+ printf("NOTE_EXEC %u\n", NOTE_EXEC);
+
+ printf("NOTE_TRIGGER %u\n", NOTE_TRIGGER);
+ printf("NOTE_FFAND %u\n", NOTE_FFAND);
+ printf("NOTE_FFOR %u\n", NOTE_FFOR);
+ printf("NOTE_FFCOPY %u\n", NOTE_FFCOPY);
+ return 0;
+}
diff --git a/tests/core/sys/kqueue/structs/structs.odin b/tests/core/sys/kqueue/structs/structs.odin
new file mode 100644
index 000000000..4886f63e4
--- /dev/null
+++ b/tests/core/sys/kqueue/structs/structs.odin
@@ -0,0 +1,58 @@
+package main
+
+import "core:fmt"
+import "core:sys/kqueue"
+
+main :: proc() {
+ fmt.println("kevent", size_of(kqueue.KEvent), align_of(kqueue.KEvent))
+ fmt.println("kevent.ident", offset_of(kqueue.KEvent, ident))
+ fmt.println("kevent.filter", offset_of(kqueue.KEvent, filter))
+ fmt.println("kevent.flags", offset_of(kqueue.KEvent, flags))
+ fmt.println("kevent.fflags", offset_of(kqueue.KEvent, fflags))
+ fmt.println("kevent.data", offset_of(kqueue.KEvent, data))
+ fmt.println("kevent.udata", offset_of(kqueue.KEvent, udata))
+
+ fmt.println("EV_ADD", transmute(kqueue._Flags_Backing)kqueue.Flags{.Add})
+ fmt.println("EV_DELETE", transmute(kqueue._Flags_Backing)kqueue.Flags{.Delete})
+ fmt.println("EV_ENABLE", transmute(kqueue._Flags_Backing)kqueue.Flags{.Enable})
+ fmt.println("EV_DISABLE", transmute(kqueue._Flags_Backing)kqueue.Flags{.Disable})
+ fmt.println("EV_ONESHOT", transmute(kqueue._Flags_Backing)kqueue.Flags{.One_Shot})
+ fmt.println("EV_CLEAR", transmute(kqueue._Flags_Backing)kqueue.Flags{.Clear})
+ fmt.println("EV_RECEIPT", transmute(kqueue._Flags_Backing)kqueue.Flags{.Receipt})
+ fmt.println("EV_DISPATCH", transmute(kqueue._Flags_Backing)kqueue.Flags{.Dispatch})
+ fmt.println("EV_ERROR", transmute(kqueue._Flags_Backing)kqueue.Flags{.Error})
+ fmt.println("EV_EOF", transmute(kqueue._Flags_Backing)kqueue.Flags{.EOF})
+
+ fmt.println("EVFILT_READ", int(kqueue.Filter.Read))
+ fmt.println("EVFILT_WRITE", int(kqueue.Filter.Write))
+ fmt.println("EVFILT_AIO", int(kqueue.Filter.AIO))
+ fmt.println("EVFILT_VNODE", int(kqueue.Filter.VNode))
+ fmt.println("EVFILT_PROC", int(kqueue.Filter.Proc))
+ fmt.println("EVFILT_SIGNAL", int(kqueue.Filter.Signal))
+ fmt.println("EVFILT_TIMER", int(kqueue.Filter.Timer))
+ fmt.println("EVFILT_USER", int(kqueue.Filter.User))
+
+ fmt.println("NOTE_SECONDS", transmute(u32)kqueue.Timer_Flags{.Seconds})
+ fmt.println("NOTE_USECONDS", transmute(u32)kqueue.Timer_Flags{.USeconds})
+ fmt.println("NOTE_NSECONDS", transmute(u32)kqueue.TIMER_FLAGS_NSECONDS)
+ fmt.println("NOTE_ABSOLUTE", transmute(u32)kqueue.Timer_Flags{.Absolute})
+
+ fmt.println("NOTE_LOWAT", transmute(u32)kqueue.RW_Flags{.Low_Water_Mark})
+
+ fmt.println("NOTE_DELETE", transmute(u32)kqueue.VNode_Flags{.Delete})
+ fmt.println("NOTE_WRITE", transmute(u32)kqueue.VNode_Flags{.Write})
+ fmt.println("NOTE_EXTEND", transmute(u32)kqueue.VNode_Flags{.Extend})
+ fmt.println("NOTE_ATTRIB", transmute(u32)kqueue.VNode_Flags{.Attrib})
+ fmt.println("NOTE_LINK", transmute(u32)kqueue.VNode_Flags{.Link})
+ fmt.println("NOTE_RENAME", transmute(u32)kqueue.VNode_Flags{.Rename})
+ fmt.println("NOTE_REVOKE", transmute(u32)kqueue.VNode_Flags{.Revoke})
+
+ fmt.println("NOTE_EXIT", transmute(u32)kqueue.Proc_Flags{.Exit})
+ fmt.println("NOTE_FORK", transmute(u32)kqueue.Proc_Flags{.Fork})
+ fmt.println("NOTE_EXEC", transmute(u32)kqueue.Proc_Flags{.Exec})
+
+ fmt.println("NOTE_TRIGGER", transmute(u32)kqueue.User_Flags{.Trigger})
+ fmt.println("NOTE_FFAND", transmute(u32)kqueue.User_Flags{.FFAnd})
+ fmt.println("NOTE_FFOR", transmute(u32)kqueue.User_Flags{.FFOr})
+ fmt.println("NOTE_FFCOPY", transmute(u32)kqueue.USER_FLAGS_COPY)
+}