My Project
Chargement...
Recherche...
Aucune correspondance
main-kmalloc.c
Aller à la documentation de ce fichier.
1
7#include <manux/config.h>
8#include <manux/bootloader.h>
9#include <manux/errno.h>
10#include <manux/console.h>
11#include <manux/segment.h>
12#include <manux/memoire.h>
13#include <manux/kmalloc.h>
14#include <manux/printk.h>
15#include <manux/stdlib.h> // rand
16
20#define NB_ELEMENTS 200
21#define NB_APPELS 10000
22
24{
25 void * elements[NB_ELEMENTS] = {NULL,};
26 int n, e;
27
28 printk(PRINTK_DEBUGAGE "Avant :\n");
29 for (e = 0; e<NB_ELEMENTS; e++){
30 elements[e] = NULL;
31 }
33 for (n = 0; n < NB_APPELS; n++) {
34 e = rand() % NB_ELEMENTS;
35 if (elements[e] == NULL) {
36 elements[e] = kmalloc(rand() % 1024);
37 } else {
38 kfree(elements[e]);
39 elements[e] = NULL;
40 }
41 }
42 printk(PRINTK_DEBUGAGE "Apres :\n");
44}
45
47{
48 // Récupération des informations depuis le bootloader
50
51 // Initialisation de la console noyau
53
54 // On peut initialiser la gestion de la mémoire
57
58 // Initialsation du système kmalloc
60
62} /* startManuX */
63
64
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
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 printk(char *format,...)
Fonction principale d'affichage dans le noyau.
Definition printk.c:166
#define PRINTK_DEBUGAGE
Definition printk.h:33
#define NULL
Definition stddef.h:10
void kmallocAfficherStatistiques(void)
Definition kmalloc-zs.c:59
void kmallocInitialisation(void)
Initialisation du sytème kmalloc.
Definition kmalloc-zs.c:80
void * kmalloc(size_t n)
Allocation d'une zone de n octets.
Definition kmalloc-zs.c:139
void kfree(void *p)
Libération d'une zone mémoire allouée.
Definition kmalloc-zs.c:265
void startManuX()
#define NB_APPELS
void testerKmalloc()
#define NB_ELEMENTS
Une fonction qu iinvoque kmalloc et kfree.
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
Définition de quelques fonctions de base (C) Manu Chaput 2020-2023.
uint32_t rand(void)
Génération d'un nombre "aléatoire" entre 0 et RAND_MAX.
Definition stdlib.c:12
uint32_t memoireDeBase
Definition bootloader.h:43
uint32_t memoireEtendue
Definition bootloader.h:44