MinMax.c


/*
 * MinMax.c
 *
 * ====================================================================================================================
 * Das Modul MinMax ist das Hauptmodul von MinMax. Es repraesentiert den
 * Kernprozess von MinMax. In ihm wird die Initialisierung des Betriebssystemkerns veranlasst.
 * Das eigentliche Hauptprogramm laedt dann nur noch den
 * Kommandointerpreter und wartet anschliessend auf dessen Termination
 * ====================================================================================================================
 */

#include "mxStrukturen.h"
#include "mxLader.h"
#include "mxProzess.h"
#include "mxTrap.h"
#include "mxVT.h"
#include "mxInterpreter.h"
#include "mxUnterbrechung.h"
#include "mxInit.h"
#include "mxLED.h"
#include "mxSeriell.h"
#include "mxAusgabe.h"
#include "mxKernStruk.h"
#include "mxVektor.h"
#include "mxInterrupt.h"
#include "mxAbbruch.h"
#include "mxCPUVerwaltung.h"
#include "mxKontrolle.h"
#include "mxSystem.h"
#include "mxSystemDienst.h"
#include "mxUhr.h"

/**********************
** Globale Variablen **
**********************/
char **BootParam;                                                       /* Der Kern kann Parameter mit auf              */
                                                                        /* Weg bekommen (a la Linux Kernel-Parameter)   */
/* -------------------------------------------------------------------------------------------------------------------- */

/***************
** Funktionen **
***************/

int main(int argc, char **argv)
{
  tProzessNummer ProzessNummer;                                         /* Prozessnummern des Kommandointerpreters      */
  tInformationsFeld Info;                                               /* Informationen ueber laufende Prozesse        */

  if (!(InitAbbruch() &&                                                /* Initialisierung saemtlicher Kern-Module      */
	InitVektor() &&                                                 /* Ergaenzen, wenn neue Module hinzukommen!     */
	InitInterrupt() &&
	InitUhr() &&
	InitSystem() &&
	InitSeriell() &&
	InitListe() &&
	InitTrap() &&
	InitKontrolle() &&
	InitCPUVerwaltung() &&
	InitProzess() &&
	InitUnterbrechung() &&
	InitAusgabe() &&
	InitLED() &&
	InitLader() &&
	InitSystemDienst() &&
	InitVT())) {
    printk("PANIK: Die Initialisierung wurde nicht fehlerfrei abgearbeitet!");
    return 1;
  }

  BootParam = argv;                                                     /* BootParameter global machen (zum Auswerten   */
                                                                        /* in anderen Modulen)                          */

  if((ProzessNummer = LadeProzess("Interpreter", /**/))) {                /* Kommandointerpreter starten                  */
    do {
      CPUWeitergeben();                                                 /*   ja -> warten bis Kommandointerpreter       */
      ProzessInformationen(Info);                                       /*         terminiert oder bis CTRL-C           */
    } while (!(VT_Abbruch || (Info[ProzessNummer].Status == eFrei)));   /*         eingegeben wurden                    */
  }

  return 0;
}



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