Annotation of 42BSD/ingres/source/ctlmod/resetp.c, revision 1.1

1.1     ! root        1: # include      "ctlmod.h"
        !             2: # include      <ingres.h>
        !             3: # include      <tree.h>
        !             4: # include      <sccs.h>
        !             5: 
        !             6: SCCSID(@(#)resetp.c    7.1     2/5/81)
        !             7: 
        !             8: /*
        !             9: **  RESETP -- reset parameters from call.
        !            10: **
        !            11: **     This must be called after an initp-setp-call sequence to
        !            12: **     reclaim the memory gathered by the initp.  It can also be
        !            13: **     used in an initp-setp sequence to clean up if an error is
        !            14: **     found.
        !            15: **
        !            16: **     Parameters:
        !            17: **             none.
        !            18: **
        !            19: **     Returns:
        !            20: **             none.
        !            21: **
        !            22: **     Side Effects:
        !            23: **             Restores the old context.
        !            24: **             Reclaims space from Qbuf.
        !            25: **
        !            26: **     Trace Flags:
        !            27: **             4.4 - 4.7
        !            28: */
        !            29: 
        !            30: resetp()
        !            31: {
        !            32:        extern char     *Proc_name;
        !            33: 
        !            34: # ifdef xCTR1
        !            35:        if (tTf(4, 4))
        !            36:                printf("resetp: ctx_new=%d _init=%d _link=%x _pmark=%d _cmark=%d\n",
        !            37:                    Ctx.ctx_new, Ctx.ctx_init, Ctx.ctx_link, Ctx.ctx_pmark,
        !            38:                    Ctx.ctx_cmark);
        !            39: # endif
        !            40: 
        !            41:        /* don't do anything if no matching "initp" call */
        !            42:        if (!Ctx.ctx_new)
        !            43:                return;
        !            44: 
        !            45:        /*
        !            46:        **      The 'freebuf' to ctx_cmark will also deallocate
        !            47:        **      any parameters, since ctx_pmark >= ctx_cmark
        !            48:        **      always.
        !            49:        */
        !            50: 
        !            51:        if (Ctx.ctx_link != NULL)
        !            52:                bmove((char *) Ctx.ctx_link, (char *) &Ctx, Ctx.ctx_size);
        !            53: # ifdef xCM_DEBUG
        !            54:        if (Ctx.ctx_pmark < Ctx.ctx_cmark)
        !            55:                syserr("resetp: pmark %d cmark %d", Ctx.ctx_pmark, Ctx.ctx_cmark);
        !            56: # endif
        !            57:        freebuf(Qbuf, Ctx.ctx_cmark);
        !            58:        tT = Ctx.ctx_tvect;
        !            59:        Proc_name = Ctx.ctx_name;
        !            60: # ifdef xCTR1
        !            61:        if (tTf(4, 5))
        !            62:                lprintf("resetp: free %d\n", Ctx.ctx_cmark);
        !            63: # endif
        !            64: 
        !            65:        /*
        !            66:        **      If there was a Qt associated with this context,
        !            67:        **      restore it also.  If not, but there was a Qt
        !            68:        **      associated with the context we just deallocated,
        !            69:        **      set Qt to be 'unallocated'.
        !            70:        */
        !            71:        if (Ctx.ctx_qt != NULL)
        !            72:        {
        !            73:                /* first free any descriptors */
        !            74:                clrrange();
        !            75:                bmove((char *) Ctx.ctx_qt, (char *) &Qt, sizeof Qt);
        !            76:                free(Ctx.ctx_qt);
        !            77:                Ctx.ctx_qt = NULL;
        !            78:        }
        !            79:        else if (Qt.qt_ctx == NULL)
        !            80:                Qt.qt_active = 0;
        !            81: }

unix.superglobalmegacorp.com

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