]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/unix/scheduler/freebsd/freebsd.factor
unix.scheduler: small new vocab to get Unix scheduler info
[factor.git] / basis / unix / scheduler / freebsd / freebsd.factor
diff --git a/basis/unix/scheduler/freebsd/freebsd.factor b/basis/unix/scheduler/freebsd/freebsd.factor
new file mode 100644 (file)
index 0000000..4e572bd
--- /dev/null
@@ -0,0 +1,19 @@
+! Copyright (C) 2022 Cat Stevens.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien.c-types alien.syntax kernel ;
+IN: unix.scheduler
+
+CONSTANT: SCHED_FIFO  1
+CONSTANT: SCHED_OTHER 2
+CONSTANT: SCHED_RR    3
+
+CONSTANT: MOST_IDLE_SCHED_POLICY 2
+
+FUNCTION: int sched_get_priority_min ( int policy )
+FUNCTION: int sched_get_priority_max ( int policy )
+
+: policy-priority-range ( policy -- high low )
+    [ sched_get_priority_max ] [ sched_get_priority_min ] bi ;
+
+: priority-allowed? ( policy -- ? )
+    SCHED_OTHER = not ;