mxDienstStruk.h


/*
 * mxDienstStruk.h
 *
 * ====================================================================================================================
 * Im Modul mxDienstStruk werden die Datenstrukturen, die fuer
 * Systemaufrufe benoetigt werden, definiert.
 * ====================================================================================================================
 */

#ifndef __mxDienstStruk__
#define __mxDienstStruk__

#include "mxStrukturen.h"


/************
** Defines **
************/
#define cStatusEintraege 16                                             /* legt die Groesse fuer tSystemStatus fest:    */
                                                                        /* sizeof(tSystemStatus) == 4*cStatusEintraege  */


/***************
** Strukturen **
***************/
typedef enum tSystemAufrufTyp {                                         /* Arten von Systemaufrufen                     */
  eStarteProzess          = 0,
  eTerminiereProzess      = 1,
  eTerminiere             = 2,
  eProzessInformationen   = 3,
  eLiesZeichen            = 4,
  eSchreibString          = 5,
  eLiesSystemStatus       = 6,
  eSetze7Segment          = 7
} tSystemAufrufTyp;


typedef struct {
  tDateiName         Name;                                              /* die Routine, mit der der Prozess loslaeuft   */
  tString            ArgZeile;                                          /* die Kommandozeile                            */
} tProzessStart;


typedef struct {                                                        /* Informationen ueber einen Prozess            */
  tProzessStatus     Status;                                            /* Prozesszustand                               */
  tProzessName       Name;                                              /* Name des Prozesses (fuer Anzeige)            */
  char               AmTerminieren;                                     /* Prozess wird gerade terminiert               */
  char               Abgeschossen;                                      /* Prozess wurde zum Terminieren vorgemerkt     */
  char               ImKern;                                            /* Prozess befindet sich gerade im Kern         */
} tProzessInformation;

typedef tProzessInformation tInformationsFeld[cMaximaleProzessAnzahl];  /* Informationen ueber alle Prozesse            */


typedef struct {                                                        /* Informationen ueber das laufende System      */
  unsigned uptime;                                                      /* Anzahl der Sekunden seit Systemstart         */
  unsigned unbenutzt[cStatusEintraege-1];                               /* Platzhalter fuer eigene Erweiterungen        */
} tSystemStatus;                                                        /* sizeof(tSystemStatus) soll fest sein         */

typedef struct {                                                        /* Status der LED                               */
  int                Zahl;
  int                Stellen;
} tLEDStatus;


typedef union {                                                         /* Eine union fuer die Paketdaten               */
  tProzessStart      Start;
  tProzessNummer     Prozess;
  tInformationsFeld  Infos;
  tString            String;
  char               Zeichen;
  int                Zahl;
  tSystemStatus      Status;
  tLEDStatus         LED;
} tPaketDaten;

typedef struct {                                                        /* System-Aufruf-Paket                          */
  tSystemAufrufTyp   Typ;
  tPaketDaten        Daten;
} tSystemAufrufPaket;


#endif


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