Annotation of researchv9/jerq/sgs/libsdp/push_id.c, revision 1.1

1.1     ! root        1: static char ID[] = "@(#) push_id.c: 1.1 3/16/82";
        !             2: #include "sdp.h"
        !             3: #include "define3.h"
        !             4: 
        !             5: #ifdef SHORT
        !             6: #define PU01   "PU01 "
        !             7: #define PU02   "PU02 "
        !             8: #else
        !             9: #define PU01   "%s","PU01 -- error return from stk2search\n"
        !            10: #define PU02   "%s","PU02 -- error return from fault\n"
        !            11: #endif
        !            12: 
        !            13: extern FATAL() ;
        !            14: extern struct LIBFILE *Glib_file ;
        !            15: extern fault() ;
        !            16: extern framesearch() ;
        !            17: extern stk2search() ;
        !            18: 
        !            19: int                                    /* SUCCESS or ERROR */
        !            20: push_id(sp,id,howmuch)
        !            21: struct SPACE   *sp ;
        !            22: ITEMID         id ;
        !            23: unsigned       howmuch ;
        !            24: {
        !            25:        register int            frame ;
        !            26:        register int            offset ;
        !            27:        register int            stack ;
        !            28:        register struct MANAGER *manager ;
        !            29:        register struct STAXINFO *pntr ;
        !            30: 
        !            31:        if(howmuch < sizeof(ITEMID)+sizeof(unsigned))
        !            32:                return(SUCCESS) ;
        !            33:        manager = (sp->environ)->manp ;
        !            34: 
        !            35:        if( (stack = stk2search(sp,howmuch)) == ERROR )
        !            36:                ERR_RET(PU01,ERROR)
        !            37: 
        !            38:        if( (frame = framesearch(sp,id)) == NOTFOUND )
        !            39:                frame = fault(sp,id) ;
        !            40: 
        !            41:        if(frame == ERROR)
        !            42:                ERR_RET(PU02,ERROR)
        !            43: 
        !            44:        offset = id % (sp->environ)->frame_size ;
        !            45:        pntr = (struct STAXINFO *)(manager[frame].frame_pntr + offset) ;
        !            46:        pntr->top = sp->staxinfo[stack].top ;
        !            47:        pntr->size = (long)howmuch ;
        !            48:        sp->staxinfo[stack].top = id ;
        !            49:        sp->staxinfo[stack].depth++  ;
        !            50:        manager[frame].ref_chng = WRTN ;
        !            51:        return(SUCCESS) ;
        !            52: }

unix.superglobalmegacorp.com

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