]>
wirehaze git hosting - ppos.git/blob - ppos/kernel/task.h
1 // PingPongOS - PingPong Operating System
2 // Prof. Carlos A. Maziero, DINF UFPR
3 // Versão 2.0 -- Junho de 2025
5 // ATENÇÃO: ESTE ARQUIVO NÃO DEVE SER ALTERADO;
6 // ALTERAÇÕES SERÃO DESCARTADAS NA CORREÇÃO.
13 // inicializa o subsistema de tarefas
16 // cria uma nova tarefa: "name" é o nome da tarefa, "entry"
17 // é a função que ela irá executar e "arg" aponta para o valor
18 // recebido por "entry" ao iniciar (pode ser NULL).
19 // retorno: ptr para o descritor da tarefa ou NULL se houver erro
20 struct task_t
*task_create(char *name
, void (*entry
)(void *),
23 // destroi uma tarefa e libera seus recursos;
24 // somente deve atuar sobre tarefas terminadas.
25 // Retorno: NOERROR (0) ou ERROR (<0)
26 int task_destroy(struct task_t
*task
);
28 // transfere a cpu da tarefa atual para outra tarefa;
29 // se task == NULL, transfere para a tarefa que a criou.
30 // ignora sem erro se "task" já tiver terminado.
31 // Retorno: NOERROR (0) ou ERROR (<0)
32 int task_switch(struct task_t
*task
);
34 // informa o ID de uma tarefa (ou da tarefa atual se NULL)
35 int task_id(struct task_t
*task
);
37 // informa o nome de uma tarefa (ou da tarefa atual se NULL)
38 char *task_name(struct task_t
*task
);