Annotation of 43BSD/ingres/source/ctlmod/ctlmod.h, revision 1.1.1.1

1.1       root        1: /*
                      2: **  CTLMOD.H -- control module header file
                      3: **
                      4: **     This header file defines all the internal data structures
                      5: **     used by the control module.
                      6: **
                      7: **     If something other than the control module or the initializer
                      8: **     has to include this, something is wrong!
                      9: **
                     10: **     Compilation Flags:
                     11: **             xCM_DEBUG -- if set, certain code is compiled in that
                     12: **                     does consistancy checks on the data structures
                     13: **                     at opportune times.
                     14: **             xMONITOR -- if set, turns on performance evaluation
                     15: **                     code.
                     16: **             xCTR1, xCTR2, xCTR3 -- if set, turns on various levels
                     17: **                     of trace information.  These must be properly
                     18: **                     nested; if xCTR2 is set, xCTR1 *MUST* be set.
                     19: **
                     20: **     Version:
                     21: **             @(#)ctlmod.h    8.1     12/31/84
                     22: */
                     23: 
                     24: 
                     25: 
                     26: 
                     27: 
                     28: 
                     29: /* include some other files */
                     30: # include      "state.h"
                     31: # include      "proc.h"
                     32: # include      <pv.h>
                     33: # include      "pipes.h"
                     34: # include      <func.h>
                     35: # include      <pmon.h>
                     36: # include      <setjmp.h>
                     37: 
                     38: /* basic constants */
                     39: # include      <useful.h>
                     40: 
                     41: 
                     42: /*
                     43: **  Trace Flag settings.
                     44: */
                     45: 
                     46: # include      <trace.h>
                     47: # define       xCTR1           1
                     48: # define       xCTR2           1
                     49: # define       xCTR3           1
                     50: # define       xCM_DEBUG       1
                     51: # define       xMONITOR        1
                     52: 
                     53: /*
                     54: **  STRUCT CM -- the configuration structure.
                     55: */
                     56: 
                     57: struct _cm_t
                     58: {
                     59:        char    cm_myname[12];          /* my process name */
                     60:        state_t cm_state[CM_MAXST];     /* the state descriptions */
                     61:        proc_t  cm_proc[CM_MAXPROC];    /* the process descriptions */
                     62:        int     cm_myproc;              /* my process id */
                     63:        char    cm_input;               /* the current input file */
                     64:        char    cm_rinput;              /* the reset input file */
                     65: };
                     66: 
                     67: /*
                     68: **  STRUCT CTX -- the context structure.
                     69: **
                     70: **     There is one of these around for every currently known
                     71: **     context.  There is a pipe block associated with the
                     72: **     context, defined in call() or main(); only a pointer
                     73: **     is kept here so that the pipe block can be more efficiently
                     74: **     allocated off the stack.
                     75: **
                     76: **     Some of the fields describe the NEXT block in the sequence.
                     77: **     These are: ctx_size, ctx_link.
                     78: **
                     79: **     Ctx_cmark is useful ONLY when this block is not currently
                     80: **     active.
                     81: **
                     82: **     Ctx_qt should be of type 'struct qthdr *'; it is 'char *' to
                     83: **     avoid including qtree.h.  It points to the saved query
                     84: **     tree header after the first qt is read in.
                     85: **
                     86: **     Ctx_pv MUST be last.
                     87: */
                     88: 
                     89: typedef struct _ctx_t
                     90: {
                     91:        char            *ctx_name;      /* the printname of this proc */
                     92:        pb_t            *ctx_ppb;       /* the pb associated w/ this ctx */
                     93:        short           *ctx_tvect;     /* the trace vect for this ctx */
                     94:        int             (*ctx_errfn)(); /* the error handling function */
                     95:        char            *ctx_qt;        /* pointer to saved Qt struct */
                     96:        struct fn_def   *ctx_fn;        /* pointer to fn descriptor */
                     97:        char            *ctx_glob;      /* ptr to saved global area */
                     98:        struct _ctx_t   *ctx_link;      /* a link to the next ctx */
                     99:        struct monitor  *ctx_mon;       /* ptr to monitor struct */
                    100:        short           ctx_size;       /* the size of the next ctx */
                    101:        bool            ctx_init;       /* set if between initp & call */
                    102:        bool            ctx_new;        /* set if this is a new context */
                    103:        char            ctx_resp;       /* process to respond to */
                    104:        int             ctx_cmark;      /* the Qbuf context mark */
                    105:        int             ctx_pmark;      /* the Qbuf parameter mark */
                    106:        jmp_buf         ctx_jbuf;       /* longjmp point on fatal error */
                    107:        long            ctx_ofiles;     /* files that should be kept open */
                    108:        int             ctx_pc;         /* the parm count */
                    109:        PARM            ctx_pv[PV_MAXPC+1];     /* the parm vector */
                    110: }  ctx_t;
                    111: 
                    112: extern ctx_t   Ctx;            /* the current context */
                    113: extern char    Qbuf[];         /* the free space buffer */
                    114: extern int     QbufSize;       /* the size of Qbuf */
                    115: extern struct _cm_t    Cm;     /* the system configuration */
                    116: extern int     Syncs[CM_MAXPROC];      /* the number of SYNCs expected */
                    117: 
                    118: 
                    119: /*
                    120: **  ERROR NUMBERS
                    121: */
                    122: 
                    123: # define       ERR_QBUF        100     /* Qbuf overflow */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.