My Project
Chargement...
Recherche...
Aucune correspondance
memoire.h
Aller à la documentation de ce fichier.
1/*----------------------------------------------------------------------------*/
2/* Définition des sous-programmes de manipulation de la mémoire sous */
3/* ManuX. */
4/* */
5/* (C) Manu Chaput 2000-2021 */
6/*----------------------------------------------------------------------------*/
7#ifndef MEMOIRE_DEF
8#define MEMOIRE_DEF
9
10#include <manux/types.h>
11#include <manux/stddef.h> // NULL
12
13#ifdef MANUX_AS
14# include <manux/appelsysteme.h> /* ParametreAS */
15#endif
16
17#define MANUX_DEBUT_MEMOIRE_ETENDUE 0x100000
18
22#define NB_PAGES(n) ((n + MANUX_TAILLE_PAGE - 1)/MANUX_TAILLE_PAGE)
23
24/*
25 * Nombre de pages communes à toutes les tâches.
26 */
27extern int nombrePagesSysteme;
28
36void initialiserMemoire(uint32_t tailleMemoireDeBase,
37 uint32_t tailleMemoireEtendue);
38
39void * allouerPage(void);
40/*
41 * Réservation d'une page (de 4 Ko)
42 *
43 * Retour
44 * première adresse dispo si la pages a pu être allouée,
45 * NULL sinon
46 */
47
48void * allouerPages(uint32_t nombre);
49/*
50 * Réservation d'un nombre choisi de pages (de 4 Ko) contigues.
51 *
52 * Retour
53 * première adresse dispo si les pages ont pu être allouées,
54 * NULL sinon
55 * WARNING à mettre en appel système ?
56 */
57
58void libererPage(void * pageLiberee);
59/*
60 * Libération d'une page préalablement allouée. Attention, aucune
61 * vérification n'est effectuée.
62 */
63
64int nombrePagesAllouees(void);
65
66int nombrePagesTotal(void);
67
68#ifdef MANUX_AS
69int AS_obtenirPages(ParametreAS p, int nbPages);
70/*
71 * Demande d'accroissement de la zone mémoire disponible à
72 * la tâche.
73 * Retour : nombre de pages obtenues.
74 */
75#endif
76
77#endif
void * allouerPages(uint32_t nombre)
Definition memoire.c:284
int nombrePagesSysteme
Definition memoire.c:48
int nombrePagesAllouees(void)
Definition memoire.c:257
void initialiserMemoire(uint32_t tailleMemoireDeBase, uint32_t tailleMemoireEtendue)
Initialisation de la mémoire au niveau pages.
Definition memoire.c:103
int nombrePagesTotal(void)
Definition memoire.c:262
void * allouerPage(void)
Definition memoire.c:234
void libererPage(void *pageLiberee)
Definition memoire.c:81
unsigned long uint32_t
Definition types.h:20