]> Kevux Git Server - fll/commit
Update: Finish adding functions to f_schedule.
authorKevin Day <Kevin@kevux.org>
Sun, 31 Aug 2025 20:49:01 +0000 (15:49 -0500)
committerKevin Day <Kevin@kevux.org>
Mon, 1 Sep 2025 01:41:23 +0000 (20:41 -0500)
commit0d6fe7db24fa436e14b960c311339b60847a365e
tree5ffdacbfd1e0c0b8ed221b6b1399135acc2179ea
parent125b8aaa3161a669578345c54bbc44874ff43661
Update: Finish adding functions to f_schedule.

This adds:
  - `f_schedule_affinity_get()`
  - `f_schedule_affinity_set()`
  - `f_schedule_attribute_get()`
  - `f_schedule_attribute_set()`
  - `f_schedule_policy_robin_interval_get()`
  - `f_schedule_priority_get_max()`
  - `f_schedule_priority_get_min()`
  - `f_schedule_yield()`

Note: the `f_schedule_attribute_get()` and `f_schedule_attribute_set()` have to use `syscall()` directly due to design problems with glibc.
The `struct sched_attr` is also an incomplete/broken type in glibc.
I have declared my own type based on the kernel structure.
It is unclear on how well this will work in practice.
I am also uncertain of the best way to mock a variadic function like `syscall()`.
The mocks for these are therefore incomplete.
28 files changed:
level_0/f_schedule/c/schedule.c
level_0/f_schedule/c/schedule.h
level_0/f_schedule/c/schedule/common.h
level_0/f_schedule/data/build/settings-mocks
level_0/f_schedule/data/build/settings-tests
level_0/f_schedule/tests/unit/c/mock-schedule.c
level_0/f_schedule/tests/unit/c/mock-schedule.h
level_0/f_schedule/tests/unit/c/test-schedule-affinity_get.c [new file with mode: 0644]
level_0/f_schedule/tests/unit/c/test-schedule-affinity_get.h [new file with mode: 0644]
level_0/f_schedule/tests/unit/c/test-schedule-affinity_set.c [new file with mode: 0644]
level_0/f_schedule/tests/unit/c/test-schedule-affinity_set.h [new file with mode: 0644]
level_0/f_schedule/tests/unit/c/test-schedule-attribute_get.c [new file with mode: 0644]
level_0/f_schedule/tests/unit/c/test-schedule-attribute_get.h [new file with mode: 0644]
level_0/f_schedule/tests/unit/c/test-schedule-attribute_set.c [new file with mode: 0644]
level_0/f_schedule/tests/unit/c/test-schedule-attribute_set.h [new file with mode: 0644]
level_0/f_schedule/tests/unit/c/test-schedule-policy_get.c
level_0/f_schedule/tests/unit/c/test-schedule-policy_robin_interval_get.c [new file with mode: 0644]
level_0/f_schedule/tests/unit/c/test-schedule-policy_robin_interval_get.h [new file with mode: 0644]
level_0/f_schedule/tests/unit/c/test-schedule-priority_get.c
level_0/f_schedule/tests/unit/c/test-schedule-priority_get_max.c [new file with mode: 0644]
level_0/f_schedule/tests/unit/c/test-schedule-priority_get_max.h [new file with mode: 0644]
level_0/f_schedule/tests/unit/c/test-schedule-priority_get_min.c [new file with mode: 0644]
level_0/f_schedule/tests/unit/c/test-schedule-priority_get_min.h [new file with mode: 0644]
level_0/f_schedule/tests/unit/c/test-schedule-value_get.c
level_0/f_schedule/tests/unit/c/test-schedule-yield.c [new file with mode: 0644]
level_0/f_schedule/tests/unit/c/test-schedule-yield.h [new file with mode: 0644]
level_0/f_schedule/tests/unit/c/test-schedule.c
level_0/f_schedule/tests/unit/c/test-schedule.h