My Project
Chargement...
Recherche...
Aucune correspondance
main-outil-synchro.c
Aller à la documentation de ce fichier.
1
7#undef MANUX_RAMDISK
8
9#include <manux/config.h>
10#include <manux/bootloader.h>
11#include <manux/errno.h>
12#include <manux/console.h>
13#include <manux/clavier.h>
14#include <manux/tache.h>
15#include <manux/horloge.h> // initialiserHorloge
16#include <manux/scheduler.h>
17#include <manux/interruptions.h>
18#include <manux/io.h>
19#include <manux/segment.h>
20#include <manux/memoire.h>
21#include <manux/atomique.h>
22#include <manux/appelsysteme.h>
23#include <manux/printk.h>
24#include <manux/debug.h>
25#include <manux/segment.h>
26#include <manux/pagination.h>
27#include <manux/limites.h>
28
29extern void init(); // Faire un init.h
30
34INoeud iNoeudConsole; // Le INoeud qui décrit la console
35
37{
38 union {
39 uint32_t registres[3];
40 char caracteres[13];
41 } descriptionProc;
42
43 // Initialisation de la console noyau
45
47
48 // Lecture du nom du processeur
49 descriptionProcesseur(0, descriptionProc.registres);
50 descriptionProc.caracteres[12] = 0;
51
52 // Affichage du premier message
53 printk_debug(DBG_KERNEL_START, "32 bit ManuX running on a '%s' ...\n",
54 descriptionProc.caracteres);
55
56 // Affichage de la mémoire disponible
57 printk_debug(DBG_KERNEL_START, "Memoire : %d + %d Ko\n",
60
61 /* Initialisation de la gestion mémoire */
62 printk_debug(DBG_KERNEL_START, "Initialisation memoire ...\n");
65
66 /* Initilisation des descripteurs de segments */
68
69 /* Initialisation de la table des interruptions */
71
72 /* Initialisation de la pagination */
73 printk_debug(DBG_KERNEL_START, "Initialisation pagination ...\n");
75 printk_debug(DBG_KERNEL_START, "Pagination initialisee\n");
76
77 /* Initialisation de la table des appels système*/
78 printk_debug(DBG_KERNEL_START, "Initialisation appels systeme ...\n");
80 printk_debug(DBG_KERNEL_START, "Appels systeme initialises\n");
81
82 // Initialisation du clavier
83 printk_debug(DBG_KERNEL_START, "Initialisation du clavier ...\n");
85 printk_debug(DBG_KERNEL_START, "Clavier initalise\n");
86
87 printk_debug(DBG_KERNEL_START, "Initialisation de l'horloge ...\n");
89 printk_debug(DBG_KERNEL_START, "Horloge initialisee\n");
90
91 // Initialisation de la gestion des processus
92 printk_debug(DBG_KERNEL_START, "Initialisation du scheduler ...\n");
94 printk_debug(DBG_KERNEL_START, "Scheduler initialise\n");
95
96 // On va maintenant faire de la tâche en cours une tâche "banale"
97 tacheSetConsole(tacheEnCours, creerConsoleVirtuelle());
98
99 init();
100} /* startManuX */
101
102
Définition des opérations de synchronisation de ManuX.
void initialiserHorloge(void)
Initialisation du système d'horloge.
Definition horloge.c:95
void initialiserAppelsSysteme(void)
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.
unsigned long uint32_t
Definition types.h:20
void initialiserIDT(void)
! Initialiser l'IDT (Interrupt Description Table)
void init()
void startManuX()
INoeud iNoeudConsole
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
#define DBG_KERNEL_START
Definition debug.h:22
#define printk_debug(lvl, fmt, args...)
Definition debug.h:86
int initialiserPagination(int tailleMemoireEtendue)
Definition pagination.c:167
void initialiserScheduler(void)
Identifiant de la tâche actuellement en cours d'exécution dans le noyau (0 si aucune)
Definition scheduler.c:181
Tache * tacheEnCours
: L'identification de la tâche en cours
Definition scheduler.c:91
void initialiserGDT(void)
Definition segment.c:156
: Un INoeud représente un fichier, d'un point de vue statique Il s'agit donc de la description d'un f...
Definition inoeud.h:27
uint32_t memoireDeBase
Definition bootloader.h:43
uint32_t memoireEtendue
Definition bootloader.h:44