My Project
Chargement...
Recherche...
Aucune correspondance
console.h
Aller à la documentation de ce fichier.
1
15#ifndef MANUX_CONSOLE_DEF
16#define MANUX_CONSOLE_DEF
17
18#include <manux/config.h>
19#include <manux/horloge.h> // nbTopHorloge
20#include <manux/types.h>
21#include <manux/atomique.h> // Accés unique à la console
22#include <manux/ecran.h>
23
24#ifdef MANUX_FICHIER
25# include <manux/fichier.h> // Une console est un fichier
26#endif
27
37typedef struct _Console {
45 unsigned char attribut;
46
47#ifdef MANUX_CONSOLES_VIRTUELLES
49 char * adresseEcranCopie;
50
51 struct _Console * suivante;
52 struct _Console * precedente;
53 int numero;
54#endif
55
56#ifdef MANUX_CLAVIER_CONSOLE
57 // WARNING : à mettre dans clavier.h
58 unsigned char * bufferClavier; // Pour les données du clavier
59 uint16_t tailleBuffer;
60 uint16_t nbCarAttente;
61 uint16_t indiceProchainCar; // Le prochain caractère à lire
62#endif
63
65
66
67#ifdef MANUX_CLAVIER_CONSOLE
74int consoleLireEntier(Console * cons);
75#endif
76
81int consoleInitialisation(void);
82
83#ifdef MANUX_FICHIER
87extern MethodesFichier consoleMethodesFichier;
88
95int consoleInitialisationINoeud(INoeud * iNoeudConsole);
96
102INoeud * consoleCreerINoeud(Console * c);
103
104#ifdef MANUX_KMALLOC
110INoeud * consoleCreerINOeud(Console * c);
111# endif // MANUX_MALLOC
112#endif // MANUX_FICHIER
113
118
120
127void consoleAfficher(Console * cons, char * msg);
128
132void consoleNoyauAfficher(char * msg);
133
134/*
135 * Affichage d'un message à l'écran. Attention, aucun formatage
136 * n'est fait. Seuls les nbOctets premiers octets sont affichés,
137 * indépemment de la présence d'un caractère nul.
138 */
139void consoleAfficherN(Console * cons, char * msg, int nbOctets);
140
141/*
142 * Effacement (avec la couleur courante) et positionnement du curseur en
143 * haut à gauche.
144 */
145void consoleEffacer(Console * cons);
146
147/*
148 * Affichage d'un entier sur la console
149 */
150void consoleAfficherEntier(Console * cons, int n);
151
152/*
153 * Affichage d'un entier sur la console. En hexa sur le nbre d'octets
154 * voulu.
155 */
156void consoleAfficherRegistre(Console * cons, int nbOctets, int reg);
157
161Console * consoleNoyau(void);
162
163#ifdef MANUX_CLAVIER_CONSOLE
167int consoleLire(Console * cons, void * buffer, int nbOctets);
168#endif
169
170/*
171 * La notion de console virtuelle permet de gérer plusieurs affichages
172 * disjoints. Chaque console est donc gérée indépendemment des autres.
173 * Une seule est affichée à l'écran à un instant t.
174 * Les consoles sont stoquées dans un tableau et repérées par leur
175 * indice dans ce tableau.
176 */
177#ifdef MANUX_CONSOLES_VIRTUELLES
178
182Console * creerConsoleVirtuelle(void);
183
184/*
185 * Pointeur vers la console active
186 */
187extern Console * consoleActive;
188
189/*
190 * Forcer l'apparition d'une console à l'écran
191 */
192void basculerVersConsole(Console * cons);
193
194/*
195 * Basculer vers la prochaine console virtuelle
196 */
197void basculerVersConsoleSuivante(void);
198
199#endif // MANUX_CONSOLES_VIRTUELLES
200
201/*
202 * Écriture sur une console
203 */
204size_t consoleEcrire(Fichier * f, void * buffer, size_t nbOctets);
205
206#ifdef MANUX_APPELS_SYSTEME
207/*
208 * La fonction réalisant l'appel système NBAS_ECRIRE_CONS
209 */
210int sys_ecrireConsole(ParametreAS as, void * msg, int n);
211
212#endif // MANUX_APPELS_SYSTEME
213
214#endif
Définition des opérations de synchronisation de ManuX.
Définition des caractéristiques de base de l'écran.
Couleur
Définition des couleurs utilisables pour l'affichage.
Definition ecran.h:36
void consoleAfficher(Console *cons, char *msg)
Affichage d'un message sur une console.
Definition console.c:427
int consoleInitialisation(void)
Initialisation du système de console sans notion de fichier.
Definition console.c:869
void consoleAfficherRegistre(Console *cons, int nbOctets, int reg)
void consoleAffecterCouleurTexte(Console *cons, Couleur coul)
Definition console.c:78
void consoleEffacer(Console *cons)
Definition console.c:83
void consoleAfficherEntier(Console *cons, int n)
Definition console.c:442
struct _Console Console
Structure d'une console.
size_t consoleEcrire(Fichier *f, void *buffer, size_t nbOctets)
void consoleAffecterCouleurFond(Console *cons, Couleur coul)
Choix des couleurs de texte et de fond (voir l'enum ci dessus)
Definition console.c:73
Console * consoleNoyau(void)
Obtention d'un pointeur sur la console par défaut.
Definition console.c:808
void consoleAfficherN(Console *cons, char *msg, int nbOctets)
Definition console.c:391
void consoleNoyauAfficher(char *msg)
Affichage d'un message sur la console noyau.
Definition console.c:437
unsigned short uint16_t
Definition types.h:16
unsigned char uint8_t
Definition types.h:12
INoeud iNoeudConsole
uint16_t c
Structure d'une console.
Definition console.h:37
uint8_t nbColonnes
Definition console.h:42
char * adresseEcran
Adresse à laquelle se trouve le contenu affiché
Definition console.h:39
unsigned char attribut
Definition console.h:45
uint8_t nbLignes
Caractéristiques de l'écran.
Definition console.h:41
int colonne
Definition console.h:44
int ligne
Position et attribut (couleur, ...) actuels.
Definition console.h:44
: 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
: Définition des opérations réalisables sur un fichier
Definition fichier.h:36