Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

cenaco - Contingency-Routine definieren (BS2000)

&pagelevel(4)&pagelevel

Definition

#include <cont.h>

void cenaco(struct enacop *enacopar);

Beschreibung

cenaco() definiert eine Contingency-Routine (TU bzw. P1), d.h. eine vom Anwender geschriebene Routine wird damit als Contingency-Routine angemeldet. Ausführliche Informationen zu Contingency-Routinen finden Sie im Abschnitt "Contingency- und STXIT-Routinen“ und im Handbuch "Makroaufrufe an den Ablaufteil“ [10].

Die Struktur enacop ist wie folgt in cont.h definiert:

struct enacop
{
  char resrv1 [7];        /* reserved for int. use   */
  char coname [54];       /* name of cont. routine   */
  char resrv2 [15];       /* reserved for int. use   */
  char level;             /* priority of cont.rout.  */
  int  (*econt)();        /* start adr of cont.rout. */
  int  comess;            /* contingency message     */
  char coidret [4];       /* contingency identifier  */
  errcod secind;          /* secondary indicator     */
  char resrv3 [2];        /* reserved for int. use   */
  errcod rcode1;          /* return code             */
};
#define errcod     char
#define _norm      0      /* normterm                */
#define _abnorm    4      /* abnormend               */
#define _enabled   4      /* codefenabled            */
#define _preven    12     /* coprevenabled           */
#define _parerr    16     /* coparerror              */
#define _maxexc    24     /* comaxexceed             */

Einige Strukturkomponenten müssen bzw. können Sie vor dem cenaco-Aufruf selbst versorgen, in anderen Einträgen legt cenaco() während des Ablaufs Informationen ab.Einträge, die vom Anwender versorgt werden:

coname

Name des Contingency-Prozesses. Der Name ist max. 54 Byte lang (ohne Nullbyte), muss in Großbuchstaben geschrieben und mit mindestens einem Leerzeichen abgeschlossen werden (ein Nullbyte unmittelbar hinter dem eigentlichen Namen wird vom System nicht als Endekriterium erkannt). Für die Versorgung von coname eignet sich z.B. die Funktion strfill(). Die Versorgung ist obligatorisch.

level

Prioritätsstufe des Contingency-Prozesses. Die Versorgung ist obligatorisch.
Es sind Werte von 1 - 126 zulässig.

econt

Startadresse der Contingency-Routine. Die Versorgung ist obligatorisch.

comess

Contingency-Message. Die Versorgung ist fakultativ. Der Wert wird als Parameter an die Contingency-Routine übergeben.

Einträge, die von cenaco() versorgt werden:

coidret

Kurzkennung des Contingency-Prozesses. Diese Kurzkennung muss in weiteren Makros (z.B. SOLSIG) zur Bezeichnung des Contingency-Prozesses verwendet werden.

secind

"Secondary Indicator", wie er nach Ausführung des ENACO-Makros im höchstwertigen Byte des Register 15 abgelegt wird (Werte 4 oder 20).

rcode1

"Return Code", wie er nach Ausführung des ENACO-Makros im niedrigstwertigen Byte des Register 15 abgelegt wird (Werte 0 oder 4).

Hinweis

Es können maximal 255 Contingency-Routinen definiert werden.

Siehe auch

cdisco(), cstxit(), signal(), alarm(), raise(), sleep().