My Project
Chargement...
Recherche...
Aucune correspondance
main-taches.c
Aller à la documentation de ce fichier.
1
7#include <manux/config.h>
8#include <manux/clavier.h>
9#include <manux/console.h>
10#include <manux/printk.h>
11#include <manux/interruptions.h>
12#include <manux/intel-8259a.h>
13#include <manux/tache.h>
14#include <manux/scheduler.h>
15#include <manux/memoire.h>
16#include <manux/bootloader.h>
17
18void startManuX(void) ;
19
20static void albert(void)
21{
22 for (int n = 0; n < 10; n++) {
23 printkc("Je suis albert !\n");
24 }
25}
26
27static void barnabe(void)
28{
29 for (int n = 0; n < 10; n++) {
30 printkc("X");
31 }
32}
33
34void startManuX(void)
35{
36 Tache * t0, *t1;
37
38 // Initialisation de la console noyau
40
41 // Initialisation des informations depuis le bootloader
43
44 // Affichage de la mémoire disponible
45 printk("Memoire : %d + %d Ko\n",
48
49 /* Initialisation de la gestion mémoire */
52
53 /* Initilisation des descripteurs de segments */
55
56 /* Initialisation de la table des interruptions */
58
60
62
64
65 // Affichage d'un message
66 printk("Creation de deux taches ...\n");
67
68 t0 = tacheCreer(albert);
69 tacheSetConsole(t0, creerConsoleVirtuelle());
71
72 t1 = tacheCreer(barnabe);
73 tacheSetConsole(t1, creerConsoleVirtuelle());
75
76 for (int i = 0; i < 2; i++) {
78 }
79 printk("FINI !\n");
80 while(1){};
81} /* startManuX */
82
void initialiserHorloge(void)
Initialisation du système d'horloge.
Definition horloge.c:95
Définition des fonctions de base d'accés à la console.
int consoleInitialisation(void)
Initialisation du système de console sans notion de fichier.
Definition console.c:869
void initialiserMemoire(uint32_t tailleMemoireDeBase, uint32_t tailleMemoireEtendue)
Initialisation de la mémoire au niveau pages.
Definition memoire.c:103
Définition des fonctions de base d'entrée-sortie du noyau.
void printk(char *format,...)
Fonction principale d'affichage dans le noyau.
Definition printk.c:166
#define printkc
Une version de printk qui écrit dans la console de la tâche en cours.
Definition printk.h:61
void initialiserIDT(void)
! Initialiser l'IDT (Interrupt Description Table)
void barnabe()
Definition main-mutex.c:22
void albert()
Definition main-mutex.c:15
void startManuX(void)
Definition main-taches.c:34
Interfaçage avec les bootloader.
InfoSysteme infoSysteme
Stockage des informations décrivant le système fournies par le bootloader.
Definition bootloader.c:29
void bootloaderInitialiser(void)
Lecture des informations fournies par le bootloader.
Definition bootloader.c:46
void initialiserClavier(void)
Definition clavier.c:28
void initialiserScheduler(void)
Identifiant de la tâche actuellement en cours d'exécution dans le noyau (0 si aucune)
Definition scheduler.c:181
void ordonnanceurAddTache(Tache *tache)
Ajout d'une tâche dans l'ordonnanceur.
Definition scheduler.c:171
void initialiserGDT(void)
Definition segment.c:156
uint32_t memoireDeBase
Definition bootloader.h:43
uint32_t memoireEtendue
Definition bootloader.h:44
: Définition du type décrivant une tache.
Definition tache.h:83
Tache * tacheCreer(CorpsTache corpsTache)
Création d'une nouvelle tâche.
Definition tache.c:113