kernel.h 647 B

12345678910111213141516171819202122232425262728
  1. #ifndef CX_MLEMOS_KERNEL_H_INCLUDED
  2. #define CX_MLEMOS_KERNEL_H_INCLUDED
  3. #include <stdint.h>
  4. #include <stdbool.h>
  5. #include "event.h"
  6. #include "process.h"
  7. #include "coroutine.h"
  8. typedef size_t cm_pid_t;
  9. #define CM_NULL_PID 0
  10. typedef struct cm_kernel_s {
  11. cm_process_t *processes;
  12. size_t processes_count;
  13. } cm_kernel_t;
  14. bool cm_kernel_init_static(cm_kernel_t *, cm_process_t *, size_t);
  15. bool cm_kernel_drop_static(cm_kernel_t *);
  16. bool cm_kernel_init(cm_kernel_t *, size_t);
  17. bool cm_kernel_drop(cm_kernel_t *);
  18. cm_pid_t cm_create_process(cm_kernel_t *, cm_coroutine_t, cm_event_t);
  19. bool cm_kill_process(cm_kernel_t *, cm_pid_t);
  20. #endif