mxAusgabe.c


/* mxAusgabe.c */

#include "mxAusgabe.h"
#include "mxSeriell.h"
#include "mxStrukturen.h"
#include "mxLib.h"
#include "mxKontrolle.h"

/* -------------------------------------------------------------------------------------------------------------------- */
/***************
** Funktionen **
***************/

void Schreibe(char *Was, int Wieviel)
/*
 * Gibt die ersten `Wieviel' Zeichen aus dem Feld `Was' aus
 */
{
  int i;

  for (i = 0; i < Wieviel; i++) {
    SchreibSeriell(Was[i]);
  }
} /* Schreibe */

/* -------------------------------------------------------------------------------------------------------------------- */

void printk(char *format, ...)
/*
 * Syslog-Ausgabe fuer den Kern (in Zusammenarbeit mit mxBoot)
 */
{
  int len;
  char buffer[512];

  buffer[0] = 1;                                                        /* Kennung fuer Syslog-Zeile                    */
  len = vsnprintf(buffer + 1, sizeof(buffer) - 2, format,
  		  ((int *) &format) + 1);
  buffer[len+1] = 0;                                                    /* Kennung fuer Ende der Syslog-Zeile           */
  ProzesswechselUnterbinden();
  Schreibe(buffer, len + 2);
  ProzesswechselZulassen();
} /* printk */

/* -------------------------------------------------------------------------------------------------------------------- */

int kprintf(char *format, ...)
/*
 * printf fuer den Kern
 */
{
  int len;
  char buffer[512];

  len = vsnprintf(buffer, sizeof(buffer), format, ((int *) &format) + 1);
  Schreibe(buffer, len);

  return len;
}

/* -------------------------------------------------------------------------------------------------------------------- */

int InitAusgabe(void)
{
  return TRUE;
}



Bei Problemen mit der Seite bitte eine Mail an Marek
Converted with C2HTML V0.669 by Iluvatar
Prozeßdatenverarbeitung