|
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