#include "kernel.h" #include "scheduler.h" #ifndef ZV_FULL_DISABLE_ROUND_ROUBIN_FIRST_MATCH zv_process_t * zv_kernel_round_first_match(zv_kernel_t *self) { zv_pid_t size = self->processes_count; zv_pid_t count = (self->last + 1) % size; while (count != self->last) { zv_process_t *current = self->processes + count; if (zv_process_is_ready(current)) { return current; } count = (count + 1) % size; } return NULL; } #else zv_process_t * zv_kernel_round_first_match(zv_kernel_t *self) { return NULL; } #endif