16#include <manux/appelsysteme.h>
24#define chiffre "0123456789abcdef"
40int vsnprintk(
char *
str,
const size_t l,
char * format,
va_list argList)
53 while ((*format) && (indice < l-1)) {
59 while ((*format <=
'9') && (*format >=
'0')) {
60 nbChiffres = nbChiffres * 10 + *format -
'0';
84affent :
switch (prefixe) {
89 n =
va_arg(argList,
long int);
101 nombre[in++] =
chiffre[n%base];
104 while (nbChiffres > in) {
109 str[indice++] = nombre[--in];
113 s =
va_arg(argList,
char *);
116 str[indice++] = s[in++];
120 c = (char)
va_arg(argList,
int);
129 str[indice++] = *format;
137 str[(indice < l)?indice:(l-1)] = 0;
154 result = vsnprintk(
str, l, format, argList);
169#ifdef MANUX_KMALLOC_NON
175 [[maybe_unused]]
int result;
188#ifdef MANUX_KMALLOC_NON
200#ifdef MANUX_CONSOLES_VIRTUELLES
201void printkc(
char * format, ...)
204#ifdef MANUX_KMALLOC_NON
210 [[maybe_unused]]
int result;
219#ifdef MANUX_KMALLOC_NON
Définition des fonctions de base d'accés à la console.
void consoleAfficher(Console *cons, char *msg)
Affichage d'un message sur une console.
void consoleNoyauAfficher(char *msg)
Affichage d'un message sur la console noyau.
Définition des outils de journalisation des messages du noyau.
void journaliser(char *message)
Journalisation d'un message.
Définition des fonctions de base d'entrée-sortie du noyau.
#define MAX_PRINTK_LENGTH
#define printkc
Une version de printk qui écrit dans la console de la tâche en cours.
#define va_start(ap, last)
__builtin_va_list va_list
Une implatation simple de kmalloc fondé sur les zones siamoises (buddy areas) (C) Emmanuel Chaput 202...
void * kmalloc(size_t n)
Allocation d'une zone de n octets.
void kfree(void *p)
Libération d'une zone mémoire allouée.
void printk(char *format,...)
La fonction d'affichage à utiliser dans le noyau.
int snprintk(char *str, size_t l, char *format,...)
: Écriture formattée dans une chaîne de caractères
Tache * tacheEnCours
: L'identification de la tâche en cours