]> wirehaze git hosting - ppos.git/blob - ppos/kernel/ppos.c

wirehaze git hosting

tasks implementation (ongoing)
[ppos.git] / ppos / kernel / ppos.c
1 // PingPongOS - PingPong Operating System
2 // Prof. Carlos A. Maziero, DINF UFPR
3 // Versão 2.0 -- Junho de 2025
4
5 // ATENÇÃO: ESTE ARQUIVO NÃO DEVE SER ALTERADO;
6 // ALTERAÇÕES SERÃO DESCARTADAS NA CORREÇÃO.
7
8 #include "hardware/cpu.h"
9 #include "lib/libc.h"
10 #include "ppos.h"
11
12 //----------------------------------------------------------------------
13
14 static void ppos_start()
15 {
16 printf("PPOS: system starting\n");
17
18 // inicia os vários subsistemas
19 mem_init();
20 task_init();
21 dispatcher_init();
22 sched_init();
23 time_init();
24 sem_init();
25 mqueue_init();
26 block_init("hardware/disk.dat");
27
28 printf("PPOS: system started (uptime %d ms)\n", systime());
29 }
30
31 //----------------------------------------------------------------------
32
33 void ppos_stop()
34 {
35 printf("PPOS: system stopping\n", systime());
36
37 // encerra os vários subsistemas (em ordem contrária ao init)
38 //block_stop("hardware/disk.dat");
39 //mqueue_stop();
40 //sem_stop();
41 //time_stop();
42 //sched_stop();
43 //dispatcher_stop();
44 //task_stop();
45 //mem_stop();
46
47 printf("PPOS: system stopped (uptime %d ms)\n", systime());
48 }
49
50 //----------------------------------------------------------------------
51
52 int main()
53 {
54 ppos_start();
55 dispatcher();
56 ppos_stop();
57 hw_poweroff(0);
58 }
59
60 //----------------------------------------------------------------------
61