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

1.1     ! root        1: static char ID[] = "@(#) redeem.c: 1.1 3/16/82";
        !             2: #include <stdio.h>
        !             3: #include "sdp.h"
        !             4: #include "define3.h"
        !             5: 
        !             6: #ifdef SHORT
        !             7: #define RE01   "RE01 "
        !             8: #define RE02   "RE02 "
        !             9: #define RE03   "RE03 "
        !            10: #define RE04   "RE04 "
        !            11: #define RE05   "RE05 "
        !            12: #define REAU   "REAU "
        !            13: #else
        !            14: #define RE01   "RE01 -- space not connected\n%o\n",sp
        !            15: #define RE02   "RE02 -- no permission to redeem\n%o\n",sp
        !            16: #define RE03   "RE03 -- id out of range\n%lo\t%lo\n",id,sp->maxpage
        !            17: #define RE04   "RE04 -- id not aligned\n%o\t%lo\n",sp,id
        !            18: #define RE05   "RE05 -- fail to push\n%o\t%lo\n",sp,id
        !            19: #define REAU   "%s","REAU -- audit failed in sdp_redeem\n"
        !            20: #endif
        !            21: 
        !            22: #ifdef SWEET
        !            23: #define PROLOG
        !            24: #define EPILOG
        !            25: #else
        !            26: #define PROLOG         if( (aud_flag == AUDITON) && (aud_check() == ERROR) )\
        !            27:                                ERR_RET(REAU,ERROR)
        !            28: #define EPILOG         if(aud_flag == AUDITON)\
        !            29:                                aud_set() ;\
        !            30:                        if(hist_fp != NULL)\
        !            31:                                fprintf(hist_fp,"RE\t%o\t%ld\t%u\n",sp,id,howmuch) ;
        !            32: #endif
        !            33: 
        !            34: extern int aud_flag ;
        !            35: extern struct LIBFILE *Glib_file ;
        !            36: extern FILE *hist_fp ;
        !            37: 
        !            38: extern int aud_check() ;
        !            39: extern aud_set() ;
        !            40: extern FATAL() ;
        !            41: extern push_id() ;
        !            42: extern spsearch() ;
        !            43: 
        !            44: int                                    /* SUCCESS or ERROR */
        !            45: sdp_redeem(sp,id,howmuch)
        !            46: struct SPACE   *sp ;
        !            47: ITEMID         id ;
        !            48: unsigned       howmuch ;
        !            49: {
        !            50: 
        !            51:        PROLOG
        !            52: 
        !            53:        if(spsearch(sp) == NOTFOUND)
        !            54:                ERR_RET(RE01,ERROR)
        !            55: 
        !            56:        if(sp->perms != WRTN)
        !            57:                ERR_RET(RE02,ERROR)
        !            58: 
        !            59:        if(INVALID(sp,id))
        !            60:                ERR_RET(RE03,ERROR)
        !            61: 
        !            62:        howmuch = (unsigned)ALIGNID((ITEMID)howmuch) ;
        !            63:        if(id != ALIGNID(id))
        !            64:                ERR_RET(RE04,ERROR)
        !            65: 
        !            66:        Glib_file = sp->lib_file ;
        !            67: 
        !            68:        if(push_id(sp,id,howmuch) == ERROR)
        !            69:                ERR_RET(RE05,ERROR)
        !            70: 
        !            71:        EPILOG
        !            72:        return(SUCCESS) ;
        !            73: }

unix.superglobalmegacorp.com

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