Annotation of researchv9/jerq/sgs/libsdp/push_id.c, revision 1.1.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.