| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #include <stdio.h>
- #include <zivuos.h>
- 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;
- }
|