My Project
Chargement...
Recherche...
Aucune correspondance
main-virtio-cons.c
Aller à la documentation de ce fichier.
1
7#include <manux/config.h>
8#include <manux/debug.h>
9#include <manux/bootloader.h>
10#include <manux/errno.h>
11#include <manux/console.h>
12#include <manux/memoire.h>
13#include <manux/interruptions.h>
14#include <manux/pci.h>
15#include <manux/fichier.h>
17
18#define NB_LIGNES 1280
19
21{
22 printk("On commence ...\n");
23 for (int n = 0; n < NB_LIGNES; n++) {
24 fprintk(f, "(%d) Une ligne de texte ...\n", n);
25 }
26 printk("Et voila !\n");
27}
28
30{
31 INoeud iNoeudVirtioConsole;
32 Fichier fichierVirtioConsole;
33
34 // Initialisation de la console noyau
36
38
39 /* Initialisation de la gestion mémoire */
42
43 /* Initilisation des descripteurs de segments */
45
46 /* Initialisation de la table des interruptions */
48
49 /* Initialisation du bus PCI */
50 printk_debug(DBG_KERNEL_START, "Initialisation du bus PCI ...\n");
52 printk_debug(DBG_KERNEL_START, "Bus PCI initialise...\n");
53
54 printk_debug(DBG_KERNEL_START, "Initialisation de virtio console ...\n");
55 if (virtioConsoleInitialisation(&iNoeudVirtioConsole) == ESUCCES) {
56 fichierOuvrir(&iNoeudVirtioConsole, &fichierVirtioConsole, O_WRONLY, 0);
57 printk_debug(DBG_KERNEL_START, "Virtio console initialise ...\n");
58 } else {
59 printk_debug(DBG_KERNEL_START, "Impossible d'initialiser la Virtio console !\n");
60 return ;
61 }
62
63 // Initialisation de la gestion des systèmes de fichiers
64 printk_debug(DBG_KERNEL_START, "Initialisation du systeme de fichiers ...\n");
66 printk_debug(DBG_KERNEL_START, "Systeme de fichiers initialise\n");
67
68 testerVirtioConsole(&fichierVirtioConsole);
69
70 // while(1){}; // WARNING : faire une fonction d'attente de vidage de
71 // virtio !
72
73} /* startManuX */
74
75
#define O_WRONLY
Definition fichier.h:28
void sfInitialiser(void)
Definition fichier.c:129
int fichierOuvrir(INoeud *iNoeud, Fichier *f, uint16_t fanions, uint16_t mode)
: Ouverture d'un fichier.
Definition fichier.c:145
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
void initialiserMemoire(uint32_t tailleMemoireDeBase, uint32_t tailleMemoireEtendue)
Initialisation de la mémoire au niveau pages.
Definition memoire.c:103
void printk(char *format,...)
Fonction principale d'affichage dans le noyau.
Definition printk.c:166
void initialiserIDT(void)
! Initialiser l'IDT (Interrupt Description Table)
void startManuX()
#define NB_LIGNES
void testerVirtioConsole(Fichier *f)
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
#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 initialiserGDT(void)
Definition segment.c:156
: Qu'est-ce qu'un fichier ouvert du point de vue du noyau ?
Definition fichier.h:46
: 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
Définition des éléments de base des consoles virtio.
int virtioConsoleInitialisation(INoeud *iNoeudVirtioConsole)
Initialisation des périphériques.