kernel.h 752 B

123456789101112131415161718192021222324252627282930313233343536
  1. #ifndef CX_ZIVUOS_KERNEL_H_INCLUDED
  2. #define CX_ZIVUOS_KERNEL_H_INCLUDED
  3. #include <stdbool.h>
  4. #include "status.h"
  5. #include "models.h"
  6. #include "process.h"
  7. typedef struct zv_kernel_s {
  8. zv_process_t *processes;
  9. zv_pid_t processes_count;
  10. zv_pid_t current_max_pid;
  11. #ifndef ZIVUOS_USE_STATIC
  12. bool is_dynamic;
  13. #endif
  14. } zv_kernel_t;
  15. zv_kernel_t * zv_kernel_create();
  16. void zv_kernel_close(zv_kernel_t *);
  17. static inline void zv_kernel_init(zv_kernel_t *, zv_process_t *);
  18. zv_process_t * zv_kernel_create_process(zv_kernel_t *);
  19. void zv_kernel_scheduler(zv_kernel_t *, bool);
  20. /* Static inline functions */
  21. static inline void zv_kernel_init(
  22. zv_kernel_t *self,
  23. zv_process_t *processes
  24. ) {
  25. self->processes = processes;
  26. }
  27. #endif