My Project
Chargement...
Recherche...
Aucune correspondance
main-virtio-net.c
Aller à la documentation de ce fichier.
1
7#include <manux/config.h>
8#include <manux/errno.h>
9#include <manux/debug.h> // A virer j'espère !
10#include <manux/clavier.h>
11#include <manux/console.h>
12#include <manux/kmalloc.h> // Pour l'initialisation
13#include <manux/printk.h>
14#include <manux/memoire.h>
15#include <manux/bootloader.h>
16#include <manux/pagination.h>
17
18#include <manux/pci.h>
19#include <manux/reseau.h>
20#include <manux/virtio-net.h>
21
22void startManuX(void); // WARNING faire un include ?
23
24void startManuX(void)
25{
26 // Récupération des informations depuis le bootloader
28
29 // Gestion globale de la mémoire
32
33 // Initialisation de la console noyau
35
36 // Initilisation des descripteurs de segments
37 printk_debug(DBG_KERNEL_START, "Initialisation de la GDT ...\n");
39
40 // Initialisation de la table des interruptions
42
43 // Initialisation de l'allocateur généraliste
45
46 // Initialisation du clavier
48 printk_debug(DBG_KERNEL_START, "Clavier initialise\n");
49
50 // Initialisation de la gestion des processus
51 printk_debug(DBG_KERNEL_START, "Initialisation du scheduler ...\n");
53 tacheSetConsole(tacheEnCours, creerConsoleVirtuelle());
54
55 // On a besoin de l'horloge pour l'ordonnanceur
56 printk_debug(DBG_KERNEL_START, "Initialisation de l'horloge ...\n");
58
59 // On initialise le sous-système réseau
60 printk_debug(DBG_KERNEL_START, "Initialisation du reseau ...\n");
62
63 // Initialisation du bus PCI
64 printk_debug(DBG_KERNEL_START, "Initialisation du bus PCI ...\n");
66 printk_debug(DBG_KERNEL_START, "Bus PCI initialise ...\n");
67
68 printk_debug(DBG_KERNEL_START, "Initialisation de virtio net ...\n");
69 if (virtioNetInit() != ESUCCES) {
70 printk_debug(DBG_KERNEL_START, "Impossible d'initialiser periph reseau ...\n");
71 }
72
73 printk_debug(DBG_KERNEL_START, "C'est parti mon kiki ...\n");
75
76 while(1) {};
77} /* _startManuX */
78
79
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
#define ESUCCES
Definition errno.h:10
Définition de kmalloc.
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 virtioNetTestDeuxiemeEmission(void)
Definition virtio-net.c:402
int virtioNetInit(void)
Initialisation des périphériques.
Definition virtio-net.c:373
void initialiserIDT(void)
! Initialiser l'IDT (Interrupt Description Table)
void kmallocInitialisation(void)
Initialisation du sytème kmalloc.
Definition kmalloc-zs.c:80
void startManuX(void)
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
void PCIEnumerationDesEquipements(void)
: recherche des équipements PCI disponibles
Definition pci.c:180
void reseauInitialiser(void)
Initialisation du sous système réseau.
Definition reseau.c:37
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
uint32_t memoireDeBase
Definition bootloader.h:43
uint32_t memoireEtendue
Definition bootloader.h:44