#include #include zv_state_t process_first_worker(zv_kernel_t *kernel, zv_process_t *self) { puts("Hello from process 1!"); printf("My balance is: %i\n\n", (int) self->balance); return ZV_READY; } zv_state_t process_second_worker(zv_kernel_t *kernel, zv_process_t *self) { puts("Hello from process 2!"); printf("My balance is: %i\n\n", (int) self->balance); return ZV_READY; } zv_state_t process_third_worker(zv_kernel_t *kernel, zv_process_t *self) { puts("Hello from process 3!"); printf("My balance is: %i\n\n", (int) self->balance); return ZV_READY; } zv_state_t process_fourth_worker(zv_kernel_t *kernel, zv_process_t *self) { puts("Hello from process 4!"); printf("My balance is: %i\n\n", (int) self->balance); return ZV_READY; } int main() { puts("ZivuOS scheduler test unit."); puts("Creating scheduler and two processes."); zv_kernel_t kernel[1]; zv_process_t processes[10]; zv_kernel_init(kernel, processes, ZV_COUNT_PROCESSES(processes)); kernel->mode = ZV_BALANCED_PRIORITY; zv_pid_t first = zv_kernel_add_process( kernel, process_first_worker, ZV_NULL_PARAM, 1 ); zv_pid_t second = zv_kernel_add_process( kernel, process_second_worker, ZV_NULL_PARAM, 4 ); zv_pid_t third = zv_kernel_add_process( kernel, process_third_worker, ZV_NULL_PARAM, 10 ); zv_pid_t four = zv_kernel_add_process( kernel, process_fourth_worker, ZV_NULL_PARAM, 4 ); zv_kernel_scheduler(kernel); return 0; }